@loaders.gl/gltf 4.0.0-beta.1 → 4.0.0-beta.3
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.min.js → dist.dev.js} +3448 -3448
- package/dist/{esm/glb-loader.js → glb-loader.js} +2 -2
- package/dist/glb-loader.js.map +1 -0
- package/dist/{esm/glb-writer.js → glb-writer.js} +2 -2
- package/dist/glb-writer.js.map +1 -0
- package/dist/{esm/gltf-loader.js → gltf-loader.js} +2 -2
- package/dist/gltf-loader.js.map +1 -0
- package/dist/{esm/gltf-writer.js → gltf-writer.js} +2 -2
- package/dist/gltf-writer.js.map +1 -0
- package/dist/index.cjs +3558 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/{esm/lib → lib}/api/gltf-extensions.js +11 -11
- package/dist/lib/api/gltf-extensions.js.map +1 -0
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/api/gltf-scenegraph.js +9 -17
- package/dist/lib/api/gltf-scenegraph.js.map +1 -0
- package/dist/{esm/lib → lib}/api/normalize-gltf-v1.js +7 -8
- package/dist/lib/api/normalize-gltf-v1.js.map +1 -0
- package/dist/{esm/lib → lib}/api/post-process-gltf.js +19 -20
- package/dist/lib/api/post-process-gltf.js.map +1 -0
- package/dist/lib/encoders/encode-glb.js.map +1 -0
- package/dist/{esm/lib → lib}/encoders/encode-gltf.js +1 -1
- package/dist/lib/encoders/encode-gltf.js.map +1 -0
- package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/extensions/EXT_mesh_features.js +7 -5
- package/dist/lib/extensions/EXT_mesh_features.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_meshopt_compression.js +2 -2
- package/dist/lib/extensions/EXT_meshopt_compression.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_structural_metadata.js +7 -7
- package/dist/lib/extensions/EXT_structural_metadata.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/EXT_texture_webp.js +2 -2
- package/dist/lib/extensions/EXT_texture_webp.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_binary_gltf.js +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_draco_mesh_compression.js +2 -2
- package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_texture_basisu.js +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/KHR_texture_transform.js +6 -6
- package/dist/lib/extensions/KHR_texture_transform.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/EXT_feature_metadata.js +3 -3
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_lights_punctual.js +2 -2
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_materials_unlit.js +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -0
- package/dist/{esm/lib → lib}/extensions/deprecated/KHR_techniques_webgl.js +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -0
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +1 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/extensions/utils/3d-tiles-utils.js +6 -9
- package/dist/lib/extensions/utils/3d-tiles-utils.js.map +1 -0
- package/dist/lib/gltf-utils/get-typed-array.d.ts +10 -0
- package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
- package/dist/lib/gltf-utils/get-typed-array.js +51 -0
- package/dist/lib/gltf-utils/get-typed-array.js.map +1 -0
- package/dist/{esm/lib → lib}/gltf-utils/gltf-attribute-utils.js +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +1 -0
- package/dist/lib/gltf-utils/gltf-constants.js.map +1 -0
- package/dist/lib/gltf-utils/gltf-utils.d.ts +2 -2
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
- package/dist/{esm/lib → lib}/gltf-utils/gltf-utils.js +7 -32
- package/dist/lib/gltf-utils/gltf-utils.js.map +1 -0
- package/dist/{esm/lib → lib}/gltf-utils/resolve-url.js +1 -1
- package/dist/lib/gltf-utils/resolve-url.js.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-glb.js +6 -2
- package/dist/lib/parsers/parse-glb.js.map +1 -0
- package/dist/{esm/lib → lib}/parsers/parse-gltf.js +7 -7
- package/dist/lib/parsers/parse-gltf.js.map +1 -0
- package/dist/lib/types/glb-types.js.map +1 -0
- package/dist/lib/types/gltf-ext-feature-metadata-schema.js.map +1 -0
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +3 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +1 -0
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js.map +1 -0
- package/dist/lib/types/gltf-json-schema.d.ts +7 -0
- package/dist/lib/types/gltf-json-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-json-schema.js.map +1 -0
- package/dist/lib/types/gltf-postprocessed-schema.js.map +1 -0
- package/dist/lib/types/gltf-types.d.ts +1 -1
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.js.map +1 -0
- package/dist/lib/utils/assert.js.map +1 -0
- package/dist/lib/utils/version.js +2 -0
- package/dist/lib/utils/version.js.map +1 -0
- package/dist/{esm/meshopt → meshopt}/meshopt-decoder.js +1 -1
- package/dist/meshopt/meshopt-decoder.js.map +1 -0
- package/dist/{esm/webp → webp}/webp.js +1 -1
- package/dist/webp/webp.js.map +1 -0
- package/package.json +19 -11
- package/src/lib/api/gltf-scenegraph.ts +5 -17
- package/src/lib/extensions/EXT_mesh_features.ts +4 -2
- package/src/lib/extensions/utils/3d-tiles-utils.ts +17 -17
- package/src/lib/gltf-utils/get-typed-array.ts +53 -14
- package/src/lib/gltf-utils/gltf-utils.ts +3 -39
- package/src/lib/types/gltf-ext-mesh-features-schema.ts +3 -1
- package/src/lib/types/gltf-json-schema.ts +7 -0
- package/src/lib/types/gltf-types.ts +1 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/glb-loader.js +0 -54
- package/dist/es5/glb-loader.js.map +0 -1
- package/dist/es5/glb-writer.js +0 -34
- package/dist/es5/glb-writer.js.map +0 -1
- package/dist/es5/gltf-loader.js +0 -81
- package/dist/es5/gltf-loader.js.map +0 -1
- package/dist/es5/gltf-writer.js +0 -35
- package/dist/es5/gltf-writer.js.map +0 -1
- package/dist/es5/index.js +0 -88
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/api/gltf-extensions.js +0 -111
- package/dist/es5/lib/api/gltf-extensions.js.map +0 -1
- package/dist/es5/lib/api/gltf-scenegraph.js +0 -598
- package/dist/es5/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/es5/lib/api/normalize-gltf-v1.js +0 -331
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/es5/lib/api/post-process-gltf.js +0 -470
- package/dist/es5/lib/api/post-process-gltf.js.map +0 -1
- package/dist/es5/lib/encoders/encode-glb.js +0 -61
- package/dist/es5/lib/encoders/encode-glb.js.map +0 -1
- package/dist/es5/lib/encoders/encode-gltf.js +0 -20
- package/dist/es5/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_mesh_features.js +0 -99
- package/dist/es5/lib/extensions/EXT_mesh_features.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +0 -94
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_structural_metadata.js +0 -375
- package/dist/es5/lib/extensions/EXT_structural_metadata.js.map +0 -1
- package/dist/es5/lib/extensions/EXT_texture_webp.js +0 -43
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +0 -39
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +0 -246
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +0 -36
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/es5/lib/extensions/KHR_texture_transform.js +0 -231
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +0 -260
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -99
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +0 -76
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +0 -113
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/es5/lib/extensions/utils/3d-tiles-utils.js +0 -254
- package/dist/es5/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js +0 -23
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +0 -68
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-constants.js +0 -48
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/es5/lib/gltf-utils/gltf-utils.js +0 -115
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/es5/lib/gltf-utils/resolve-url.js +0 -18
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/es5/lib/parsers/parse-glb.js +0 -120
- package/dist/es5/lib/parsers/parse-glb.js.map +0 -1
- package/dist/es5/lib/parsers/parse-gltf.js +0 -283
- package/dist/es5/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/es5/lib/types/glb-types.js +0 -2
- package/dist/es5/lib/types/glb-types.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js +0 -2
- package/dist/es5/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-json-schema.js +0 -2
- package/dist/es5/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-postprocessed-schema.js +0 -2
- package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/es5/lib/types/gltf-types.js +0 -2
- package/dist/es5/lib/types/gltf-types.js.map +0 -1
- package/dist/es5/lib/utils/assert.js +0 -12
- package/dist/es5/lib/utils/assert.js.map +0 -1
- package/dist/es5/lib/utils/version.js +0 -9
- package/dist/es5/lib/utils/version.js.map +0 -1
- package/dist/es5/meshopt/meshopt-decoder.js +0 -215
- package/dist/es5/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/es5/webp/webp.js +0 -83
- package/dist/es5/webp/webp.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/glb-loader.js.map +0 -1
- package/dist/esm/glb-writer.js.map +0 -1
- package/dist/esm/gltf-loader.js.map +0 -1
- package/dist/esm/gltf-writer.js.map +0 -1
- package/dist/esm/index.js +0 -13
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/api/gltf-extensions.js.map +0 -1
- package/dist/esm/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/esm/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/esm/lib/api/post-process-gltf.js.map +0 -1
- package/dist/esm/lib/encoders/encode-glb.js.map +0 -1
- package/dist/esm/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_mesh_features.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_structural_metadata.js.map +0 -1
- package/dist/esm/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/esm/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/get-typed-array.js +0 -16
- package/dist/esm/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/esm/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/esm/lib/parsers/parse-glb.js.map +0 -1
- package/dist/esm/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/esm/lib/types/glb-types.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/esm/lib/types/gltf-types.js.map +0 -1
- package/dist/esm/lib/utils/assert.js.map +0 -1
- package/dist/esm/lib/utils/version.js +0 -2
- package/dist/esm/lib/utils/version.js.map +0 -1
- package/dist/esm/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/esm/meshopt/meshopt-encoder.ts.disabled +0 -409
- package/dist/esm/webp/webp.js.map +0 -1
- package/src/bundle.ts +0 -4
- /package/dist/{esm/lib → lib}/encoders/encode-glb.js +0 -0
- /package/dist/{esm/lib → lib}/gltf-utils/gltf-constants.js +0 -0
- /package/dist/{esm/lib → lib}/types/glb-types.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-feature-metadata-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-mesh-features-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-ext-structural-metadata-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-json-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-postprocessed-schema.js +0 -0
- /package/dist/{esm/lib → lib}/types/gltf-types.js +0 -0
- /package/dist/{esm/lib → lib}/utils/assert.js +0 -0
- /package/dist/{es5/meshopt → meshopt}/meshopt-encoder.ts.disabled +0 -0
|
@@ -1,99 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,94 +0,0 @@
|
|
|
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 _meshoptDecoder = require("../../meshopt/meshopt-decoder");
|
|
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 DEFAULT_MESHOPT_OPTIONS = {
|
|
17
|
-
byteOffset: 0,
|
|
18
|
-
filter: 'NONE'
|
|
19
|
-
};
|
|
20
|
-
var EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';
|
|
21
|
-
var name = EXT_MESHOPT_COMPRESSION;
|
|
22
|
-
exports.name = name;
|
|
23
|
-
function decode(_x, _x2) {
|
|
24
|
-
return _decode.apply(this, arguments);
|
|
25
|
-
}
|
|
26
|
-
function _decode() {
|
|
27
|
-
_decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
|
|
28
|
-
var _options$gltf, _options$gltf2;
|
|
29
|
-
var scenegraph, promises, _iterator, _step, bufferViewIndex;
|
|
30
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
|
-
while (1) switch (_context.prev = _context.next) {
|
|
32
|
-
case 0:
|
|
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) || !((_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadBuffers))) {
|
|
35
|
-
_context.next = 3;
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
|
-
return _context.abrupt("return");
|
|
39
|
-
case 3:
|
|
40
|
-
promises = [];
|
|
41
|
-
_iterator = _createForOfIteratorHelper(gltfData.json.bufferViews || []);
|
|
42
|
-
try {
|
|
43
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
44
|
-
bufferViewIndex = _step.value;
|
|
45
|
-
promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));
|
|
46
|
-
}
|
|
47
|
-
} catch (err) {
|
|
48
|
-
_iterator.e(err);
|
|
49
|
-
} finally {
|
|
50
|
-
_iterator.f();
|
|
51
|
-
}
|
|
52
|
-
_context.next = 8;
|
|
53
|
-
return Promise.all(promises);
|
|
54
|
-
case 8:
|
|
55
|
-
scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
|
|
56
|
-
case 9:
|
|
57
|
-
case "end":
|
|
58
|
-
return _context.stop();
|
|
59
|
-
}
|
|
60
|
-
}, _callee);
|
|
61
|
-
}));
|
|
62
|
-
return _decode.apply(this, arguments);
|
|
63
|
-
}
|
|
64
|
-
function decodeMeshoptBufferView(_x3, _x4) {
|
|
65
|
-
return _decodeMeshoptBufferView.apply(this, arguments);
|
|
66
|
-
}
|
|
67
|
-
function _decodeMeshoptBufferView() {
|
|
68
|
-
_decodeMeshoptBufferView = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, bufferView) {
|
|
69
|
-
var meshoptExtension, _meshoptExtension$byt, byteOffset, _meshoptExtension$byt2, byteLength, byteStride, count, mode, _meshoptExtension$fil, filter, bufferIndex, buffer, source, result;
|
|
70
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
71
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
72
|
-
case 0:
|
|
73
|
-
meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
74
|
-
if (!meshoptExtension) {
|
|
75
|
-
_context2.next = 9;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
78
|
-
_meshoptExtension$byt = meshoptExtension.byteOffset, byteOffset = _meshoptExtension$byt === void 0 ? 0 : _meshoptExtension$byt, _meshoptExtension$byt2 = meshoptExtension.byteLength, byteLength = _meshoptExtension$byt2 === void 0 ? 0 : _meshoptExtension$byt2, byteStride = meshoptExtension.byteStride, count = meshoptExtension.count, mode = meshoptExtension.mode, _meshoptExtension$fil = meshoptExtension.filter, filter = _meshoptExtension$fil === void 0 ? 'NONE' : _meshoptExtension$fil, bufferIndex = meshoptExtension.buffer;
|
|
79
|
-
buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
80
|
-
source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
81
|
-
result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
82
|
-
_context2.next = 8;
|
|
83
|
-
return (0, _meshoptDecoder.meshoptDecodeGltfBuffer)(result, count, byteStride, source, mode, filter);
|
|
84
|
-
case 8:
|
|
85
|
-
scenegraph.removeObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
86
|
-
case 9:
|
|
87
|
-
case "end":
|
|
88
|
-
return _context2.stop();
|
|
89
|
-
}
|
|
90
|
-
}, _callee2);
|
|
91
|
-
}));
|
|
92
|
-
return _decodeMeshoptBufferView.apply(this, arguments);
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=EXT_meshopt_compression.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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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"}
|
|
@@ -1,375 +0,0 @@
|
|
|
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.getPropertyTableFromExtStructuralMetadata = getPropertyTableFromExtStructuralMetadata;
|
|
9
|
-
exports.name = void 0;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
-
var _gltfScenegraph = require("../api/gltf-scenegraph");
|
|
13
|
-
var _dTilesUtils = require("./utils/3d-tiles-utils");
|
|
14
|
-
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; } } }; }
|
|
15
|
-
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); }
|
|
16
|
-
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; }
|
|
17
|
-
var EXT_STRUCTURAL_METADATA_NAME = 'EXT_structural_metadata';
|
|
18
|
-
var name = EXT_STRUCTURAL_METADATA_NAME;
|
|
19
|
-
exports.name = name;
|
|
20
|
-
function decode(_x, _x2) {
|
|
21
|
-
return _decode.apply(this, arguments);
|
|
22
|
-
}
|
|
23
|
-
function _decode() {
|
|
24
|
-
_decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
|
|
25
|
-
var scenegraph;
|
|
26
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
27
|
-
while (1) switch (_context.prev = _context.next) {
|
|
28
|
-
case 0:
|
|
29
|
-
scenegraph = new _gltfScenegraph.GLTFScenegraph(gltfData);
|
|
30
|
-
decodeExtStructuralMetadata(scenegraph, options);
|
|
31
|
-
case 2:
|
|
32
|
-
case "end":
|
|
33
|
-
return _context.stop();
|
|
34
|
-
}
|
|
35
|
-
}, _callee);
|
|
36
|
-
}));
|
|
37
|
-
return _decode.apply(this, arguments);
|
|
38
|
-
}
|
|
39
|
-
function getPropertyTableFromExtStructuralMetadata(extension, metadataClass) {
|
|
40
|
-
if (extension.propertyTables) {
|
|
41
|
-
var firstPropertyTable = extension === null || extension === void 0 ? void 0 : extension.propertyTables[0];
|
|
42
|
-
var propertyTableWithData = {};
|
|
43
|
-
for (var propertyName in firstPropertyTable.properties) {
|
|
44
|
-
propertyTableWithData[propertyName] = firstPropertyTable.properties[propertyName].data;
|
|
45
|
-
}
|
|
46
|
-
return propertyTableWithData;
|
|
47
|
-
}
|
|
48
|
-
if (extension.propertyTextures) {
|
|
49
|
-
var firstPropertyTexture = extension === null || extension === void 0 ? void 0 : extension.propertyTextures[0];
|
|
50
|
-
var _propertyTableWithData = {};
|
|
51
|
-
for (var _propertyName in firstPropertyTexture.properties) {
|
|
52
|
-
_propertyTableWithData[_propertyName] = firstPropertyTexture.properties[_propertyName].data;
|
|
53
|
-
}
|
|
54
|
-
return _propertyTableWithData;
|
|
55
|
-
}
|
|
56
|
-
console.warn('Cannot get property table from EXT_structural_metadata extension. There is neither propertyTables, nor propertyTextures in the extension.');
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
function decodeExtStructuralMetadata(scenegraph, options) {
|
|
60
|
-
var _options$gltf, _options$gltf2;
|
|
61
|
-
if (!((_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.loadBuffers)) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
var extension = scenegraph.getExtension(EXT_STRUCTURAL_METADATA_NAME);
|
|
65
|
-
if (!extension) {
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if ((_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadImages) {
|
|
69
|
-
decodePropertyTextures(scenegraph, extension);
|
|
70
|
-
}
|
|
71
|
-
decodePropertyTables(scenegraph, extension);
|
|
72
|
-
}
|
|
73
|
-
function decodePropertyTextures(scenegraph, extension) {
|
|
74
|
-
var propertyTextures = extension.propertyTextures;
|
|
75
|
-
var json = scenegraph.gltf.json;
|
|
76
|
-
if (propertyTextures && json.meshes) {
|
|
77
|
-
var _iterator = _createForOfIteratorHelper(json.meshes),
|
|
78
|
-
_step;
|
|
79
|
-
try {
|
|
80
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
81
|
-
var mesh = _step.value;
|
|
82
|
-
var _iterator2 = _createForOfIteratorHelper(mesh.primitives),
|
|
83
|
-
_step2;
|
|
84
|
-
try {
|
|
85
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
86
|
-
var primitive = _step2.value;
|
|
87
|
-
processPrimitivePropertyTextures(scenegraph, propertyTextures, primitive, extension);
|
|
88
|
-
}
|
|
89
|
-
} catch (err) {
|
|
90
|
-
_iterator2.e(err);
|
|
91
|
-
} finally {
|
|
92
|
-
_iterator2.f();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
} catch (err) {
|
|
96
|
-
_iterator.e(err);
|
|
97
|
-
} finally {
|
|
98
|
-
_iterator.f();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
function decodePropertyTables(scenegraph, extension) {
|
|
103
|
-
var schema = extension.schema;
|
|
104
|
-
if (!schema) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
|
-
var schemaClasses = schema.classes;
|
|
108
|
-
var propertyTables = extension.propertyTables;
|
|
109
|
-
if (schemaClasses && propertyTables) {
|
|
110
|
-
for (var schemaName in schemaClasses) {
|
|
111
|
-
var propertyTable = findPropertyTableByClass(propertyTables, schemaName);
|
|
112
|
-
if (propertyTable) {
|
|
113
|
-
processPropertyTable(scenegraph, schema, propertyTable);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function findPropertyTableByClass(propertyTables, schemaClassName) {
|
|
119
|
-
var _iterator3 = _createForOfIteratorHelper(propertyTables),
|
|
120
|
-
_step3;
|
|
121
|
-
try {
|
|
122
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
123
|
-
var propertyTable = _step3.value;
|
|
124
|
-
if (propertyTable.class === schemaClassName) {
|
|
125
|
-
return propertyTable;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
} catch (err) {
|
|
129
|
-
_iterator3.e(err);
|
|
130
|
-
} finally {
|
|
131
|
-
_iterator3.f();
|
|
132
|
-
}
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
function processPrimitivePropertyTextures(scenegraph, propertyTextures, primitive, extension) {
|
|
136
|
-
var _primitive$extensions;
|
|
137
|
-
if (!propertyTextures) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
var primitiveExtension = (_primitive$extensions = primitive.extensions) === null || _primitive$extensions === void 0 ? void 0 : _primitive$extensions[EXT_STRUCTURAL_METADATA_NAME];
|
|
141
|
-
var primitivePropertyTextureIndices = primitiveExtension === null || primitiveExtension === void 0 ? void 0 : primitiveExtension.propertyTextures;
|
|
142
|
-
if (!primitivePropertyTextureIndices) {
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
var _iterator4 = _createForOfIteratorHelper(primitivePropertyTextureIndices),
|
|
146
|
-
_step4;
|
|
147
|
-
try {
|
|
148
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
149
|
-
var primitivePropertyTextureIndex = _step4.value;
|
|
150
|
-
var propertyTexture = propertyTextures[primitivePropertyTextureIndex];
|
|
151
|
-
processPrimitivePropertyTexture(scenegraph, propertyTexture, primitive, extension);
|
|
152
|
-
}
|
|
153
|
-
} catch (err) {
|
|
154
|
-
_iterator4.e(err);
|
|
155
|
-
} finally {
|
|
156
|
-
_iterator4.f();
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
function processPrimitivePropertyTexture(scenegraph, propertyTexture, primitive, extension) {
|
|
160
|
-
if (!propertyTexture.properties) {
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
if (!extension.dataAttributeNames) {
|
|
164
|
-
extension.dataAttributeNames = [];
|
|
165
|
-
}
|
|
166
|
-
var className = propertyTexture.class;
|
|
167
|
-
for (var propertyName in propertyTexture.properties) {
|
|
168
|
-
var _propertyTexture$prop;
|
|
169
|
-
var attributeName = "".concat(className, "_").concat(propertyName);
|
|
170
|
-
var textureInfoTopLevel = (_propertyTexture$prop = propertyTexture.properties) === null || _propertyTexture$prop === void 0 ? void 0 : _propertyTexture$prop[propertyName];
|
|
171
|
-
if (!textureInfoTopLevel) {
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
if (!textureInfoTopLevel.data) {
|
|
175
|
-
textureInfoTopLevel.data = [];
|
|
176
|
-
}
|
|
177
|
-
var featureTextureTable = textureInfoTopLevel.data;
|
|
178
|
-
var propertyData = (0, _dTilesUtils.getPrimitiveTextureData)(scenegraph, textureInfoTopLevel, primitive);
|
|
179
|
-
if (propertyData === null) {
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
(0, _dTilesUtils.primitivePropertyDataToAttributes)(scenegraph, attributeName, propertyData, featureTextureTable, primitive);
|
|
183
|
-
textureInfoTopLevel.data = featureTextureTable;
|
|
184
|
-
extension.dataAttributeNames.push(attributeName);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
function processPropertyTable(scenegraph, schema, propertyTable) {
|
|
188
|
-
var _schema$classes;
|
|
189
|
-
var schemaClass = (_schema$classes = schema.classes) === null || _schema$classes === void 0 ? void 0 : _schema$classes[propertyTable.class];
|
|
190
|
-
if (!schemaClass) {
|
|
191
|
-
throw new Error("Incorrect data in the EXT_structural_metadata extension: no schema class with name ".concat(propertyTable.class));
|
|
192
|
-
}
|
|
193
|
-
var numberOfElements = propertyTable.count;
|
|
194
|
-
for (var propertyName in schemaClass.properties) {
|
|
195
|
-
var _propertyTable$proper;
|
|
196
|
-
var classProperty = schemaClass.properties[propertyName];
|
|
197
|
-
var propertyTableProperty = (_propertyTable$proper = propertyTable.properties) === null || _propertyTable$proper === void 0 ? void 0 : _propertyTable$proper[propertyName];
|
|
198
|
-
if (propertyTableProperty) {
|
|
199
|
-
var data = getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty);
|
|
200
|
-
propertyTableProperty.data = data;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
function getPropertyDataFromBinarySource(scenegraph, schema, classProperty, numberOfElements, propertyTableProperty) {
|
|
205
|
-
var data = [];
|
|
206
|
-
var valuesBufferView = propertyTableProperty.values;
|
|
207
|
-
var valuesDataBytes = scenegraph.getTypedArrayForBufferView(valuesBufferView);
|
|
208
|
-
var arrayOffsets = getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements);
|
|
209
|
-
var stringOffsets = getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements);
|
|
210
|
-
switch (classProperty.type) {
|
|
211
|
-
case 'SCALAR':
|
|
212
|
-
case 'VEC2':
|
|
213
|
-
case 'VEC3':
|
|
214
|
-
case 'VEC4':
|
|
215
|
-
case 'MAT2':
|
|
216
|
-
case 'MAT3':
|
|
217
|
-
case 'MAT4':
|
|
218
|
-
{
|
|
219
|
-
data = getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes, arrayOffsets);
|
|
220
|
-
break;
|
|
221
|
-
}
|
|
222
|
-
case 'BOOLEAN':
|
|
223
|
-
{
|
|
224
|
-
throw new Error("Not implemented - classProperty.type=".concat(classProperty.type));
|
|
225
|
-
}
|
|
226
|
-
case 'STRING':
|
|
227
|
-
{
|
|
228
|
-
data = (0, _dTilesUtils.getPropertyDataString)(numberOfElements, valuesDataBytes, arrayOffsets, stringOffsets);
|
|
229
|
-
break;
|
|
230
|
-
}
|
|
231
|
-
case 'ENUM':
|
|
232
|
-
{
|
|
233
|
-
data = getPropertyDataENUM(schema, classProperty, numberOfElements, valuesDataBytes, arrayOffsets);
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
default:
|
|
237
|
-
throw new Error("Unknown classProperty type ".concat(classProperty.type));
|
|
238
|
-
}
|
|
239
|
-
return data;
|
|
240
|
-
}
|
|
241
|
-
function getArrayOffsetsForProperty(scenegraph, classProperty, propertyTableProperty, numberOfElements) {
|
|
242
|
-
if (classProperty.array && typeof classProperty.count === 'undefined' && typeof propertyTableProperty.arrayOffsets !== 'undefined') {
|
|
243
|
-
return (0, _dTilesUtils.getOffsetsForProperty)(scenegraph, propertyTableProperty.arrayOffsets, propertyTableProperty.arrayOffsetType || 'UINT32', numberOfElements);
|
|
244
|
-
}
|
|
245
|
-
return null;
|
|
246
|
-
}
|
|
247
|
-
function getStringOffsetsForProperty(scenegraph, propertyTableProperty, numberOfElements) {
|
|
248
|
-
if (typeof propertyTableProperty.stringOffsets !== 'undefined') {
|
|
249
|
-
return (0, _dTilesUtils.getOffsetsForProperty)(scenegraph, propertyTableProperty.stringOffsets, propertyTableProperty.stringOffsetType || 'UINT32', numberOfElements);
|
|
250
|
-
}
|
|
251
|
-
return null;
|
|
252
|
-
}
|
|
253
|
-
function getPropertyDataNumeric(classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {
|
|
254
|
-
var isArray = classProperty.array;
|
|
255
|
-
var arrayCount = classProperty.count;
|
|
256
|
-
var elementSize = (0, _dTilesUtils.getArrayElementByteSize)(classProperty.type, classProperty.componentType);
|
|
257
|
-
var elementCount = valuesDataBytes.byteLength / elementSize;
|
|
258
|
-
var valuesData;
|
|
259
|
-
if (classProperty.componentType) {
|
|
260
|
-
valuesData = (0, _dTilesUtils.convertRawBufferToMetadataArray)(valuesDataBytes, classProperty.type, classProperty.componentType, elementCount);
|
|
261
|
-
} else {
|
|
262
|
-
valuesData = valuesDataBytes;
|
|
263
|
-
}
|
|
264
|
-
if (isArray) {
|
|
265
|
-
if (arrayOffsets) {
|
|
266
|
-
return (0, _dTilesUtils.parseVariableLengthArrayNumeric)(valuesData, numberOfElements, arrayOffsets, valuesDataBytes.length, elementSize);
|
|
267
|
-
}
|
|
268
|
-
if (arrayCount) {
|
|
269
|
-
return (0, _dTilesUtils.parseFixedLengthArrayNumeric)(valuesData, numberOfElements, arrayCount);
|
|
270
|
-
}
|
|
271
|
-
return [];
|
|
272
|
-
}
|
|
273
|
-
return valuesData;
|
|
274
|
-
}
|
|
275
|
-
function getPropertyDataENUM(schema, classProperty, numberOfElements, valuesDataBytes, arrayOffsets) {
|
|
276
|
-
var _schema$enums;
|
|
277
|
-
var enumType = classProperty.enumType;
|
|
278
|
-
if (!enumType) {
|
|
279
|
-
throw new Error('Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM');
|
|
280
|
-
}
|
|
281
|
-
var enumEntry = (_schema$enums = schema.enums) === null || _schema$enums === void 0 ? void 0 : _schema$enums[enumType];
|
|
282
|
-
if (!enumEntry) {
|
|
283
|
-
throw new Error("Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ".concat(enumType));
|
|
284
|
-
}
|
|
285
|
-
var enumValueType = enumEntry.valueType || 'UINT16';
|
|
286
|
-
var elementSize = (0, _dTilesUtils.getArrayElementByteSize)(classProperty.type, enumValueType);
|
|
287
|
-
var elementCount = valuesDataBytes.byteLength / elementSize;
|
|
288
|
-
var valuesData = (0, _dTilesUtils.convertRawBufferToMetadataArray)(valuesDataBytes, classProperty.type, enumValueType, elementCount);
|
|
289
|
-
if (!valuesData) {
|
|
290
|
-
valuesData = valuesDataBytes;
|
|
291
|
-
}
|
|
292
|
-
if (classProperty.array) {
|
|
293
|
-
if (arrayOffsets) {
|
|
294
|
-
return parseVariableLengthArrayENUM({
|
|
295
|
-
valuesData: valuesData,
|
|
296
|
-
numberOfElements: numberOfElements,
|
|
297
|
-
arrayOffsets: arrayOffsets,
|
|
298
|
-
valuesDataBytesLength: valuesDataBytes.length,
|
|
299
|
-
elementSize: elementSize,
|
|
300
|
-
enumEntry: enumEntry
|
|
301
|
-
});
|
|
302
|
-
}
|
|
303
|
-
var arrayCount = classProperty.count;
|
|
304
|
-
if (arrayCount) {
|
|
305
|
-
return parseFixedLengthArrayENUM(valuesData, numberOfElements, arrayCount, enumEntry);
|
|
306
|
-
}
|
|
307
|
-
return [];
|
|
308
|
-
}
|
|
309
|
-
return getEnumsArray(valuesData, 0, numberOfElements, enumEntry);
|
|
310
|
-
}
|
|
311
|
-
function parseVariableLengthArrayENUM(params) {
|
|
312
|
-
var valuesData = params.valuesData,
|
|
313
|
-
numberOfElements = params.numberOfElements,
|
|
314
|
-
arrayOffsets = params.arrayOffsets,
|
|
315
|
-
valuesDataBytesLength = params.valuesDataBytesLength,
|
|
316
|
-
elementSize = params.elementSize,
|
|
317
|
-
enumEntry = params.enumEntry;
|
|
318
|
-
var attributeValueArray = [];
|
|
319
|
-
for (var index = 0; index < numberOfElements; index++) {
|
|
320
|
-
var arrayOffset = arrayOffsets[index];
|
|
321
|
-
var arrayByteSize = arrayOffsets[index + 1] - arrayOffsets[index];
|
|
322
|
-
if (arrayByteSize + arrayOffset > valuesDataBytesLength) {
|
|
323
|
-
break;
|
|
324
|
-
}
|
|
325
|
-
var typedArrayOffset = arrayOffset / elementSize;
|
|
326
|
-
var elementCount = arrayByteSize / elementSize;
|
|
327
|
-
var array = getEnumsArray(valuesData, typedArrayOffset, elementCount, enumEntry);
|
|
328
|
-
attributeValueArray.push(array);
|
|
329
|
-
}
|
|
330
|
-
return attributeValueArray;
|
|
331
|
-
}
|
|
332
|
-
function parseFixedLengthArrayENUM(valuesData, numberOfElements, arrayCount, enumEntry) {
|
|
333
|
-
var attributeValueArray = [];
|
|
334
|
-
for (var index = 0; index < numberOfElements; index++) {
|
|
335
|
-
var elementOffset = arrayCount * index;
|
|
336
|
-
var array = getEnumsArray(valuesData, elementOffset, arrayCount, enumEntry);
|
|
337
|
-
attributeValueArray.push(array);
|
|
338
|
-
}
|
|
339
|
-
return attributeValueArray;
|
|
340
|
-
}
|
|
341
|
-
function getEnumsArray(valuesData, offset, count, enumEntry) {
|
|
342
|
-
var array = [];
|
|
343
|
-
for (var i = 0; i < count; i++) {
|
|
344
|
-
if (valuesData instanceof BigInt64Array || valuesData instanceof BigUint64Array) {
|
|
345
|
-
array.push('');
|
|
346
|
-
} else {
|
|
347
|
-
var value = valuesData[offset + i];
|
|
348
|
-
var enumObject = getEnumByValue(enumEntry, value);
|
|
349
|
-
if (enumObject) {
|
|
350
|
-
array.push(enumObject.name);
|
|
351
|
-
} else {
|
|
352
|
-
array.push('');
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
return array;
|
|
357
|
-
}
|
|
358
|
-
function getEnumByValue(enumEntry, value) {
|
|
359
|
-
var _iterator5 = _createForOfIteratorHelper(enumEntry.values),
|
|
360
|
-
_step5;
|
|
361
|
-
try {
|
|
362
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
363
|
-
var enumValue = _step5.value;
|
|
364
|
-
if (enumValue.value === value) {
|
|
365
|
-
return enumValue;
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
} catch (err) {
|
|
369
|
-
_iterator5.e(err);
|
|
370
|
-
} finally {
|
|
371
|
-
_iterator5.f();
|
|
372
|
-
}
|
|
373
|
-
return null;
|
|
374
|
-
}
|
|
375
|
-
//# sourceMappingURL=EXT_structural_metadata.js.map
|