@loaders.gl/gltf 3.3.0-alpha.5 → 3.3.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.min.js +104 -124
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/glb-loader.js +2 -13
- package/dist/es5/glb-loader.js.map +1 -1
- package/dist/es5/glb-writer.js +3 -6
- package/dist/es5/glb-writer.js.map +1 -1
- package/dist/es5/gltf-loader.js +11 -23
- package/dist/es5/gltf-loader.js.map +1 -1
- package/dist/es5/gltf-writer.js +2 -5
- package/dist/es5/gltf-writer.js.map +1 -1
- package/dist/es5/index.js +10 -17
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/api/gltf-extensions.js +14 -48
- package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
- package/dist/es5/lib/api/gltf-scenegraph.js +113 -96
- package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
- package/dist/es5/lib/api/normalize-gltf-v1.js +32 -70
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
- package/dist/es5/lib/api/post-process-gltf.js +26 -89
- package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
- package/dist/es5/lib/encoders/encode-glb.js +10 -8
- package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
- package/dist/es5/lib/encoders/encode-gltf.js +3 -6
- package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +2 -28
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_texture_webp.js +5 -18
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +5 -12
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +11 -79
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +5 -14
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_transform.js +17 -72
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +0 -21
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +0 -24
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +2 -19
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +11 -29
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js +1 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +5 -17
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-constants.js +3 -4
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-utils.js +1 -8
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/resolve-url.js +0 -5
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
- package/dist/es5/lib/parsers/parse-glb.js +11 -17
- package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
- package/dist/es5/lib/parsers/parse-gltf.js +12 -73
- package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/es5/lib/types/glb-types.js.map +1 -1
- package/dist/es5/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-postprocessed-schema.js.map +1 -1
- package/dist/es5/lib/types/gltf-types.js.map +1 -1
- package/dist/es5/lib/utils/assert.js +0 -1
- package/dist/es5/lib/utils/assert.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/meshopt/meshopt-decoder.js +10 -47
- package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
- package/dist/es5/webp/webp.js +3 -19
- package/dist/es5/webp/webp.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/glb-loader.js +0 -1
- package/dist/esm/glb-loader.js.map +1 -1
- package/dist/esm/glb-writer.js +3 -1
- package/dist/esm/glb-writer.js.map +1 -1
- package/dist/esm/gltf-loader.js +9 -3
- package/dist/esm/gltf-loader.js.map +1 -1
- package/dist/esm/gltf-writer.js +3 -2
- package/dist/esm/gltf-writer.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/api/gltf-extensions.js +16 -9
- package/dist/esm/lib/api/gltf-extensions.js.map +1 -1
- package/dist/esm/lib/api/gltf-scenegraph.js +27 -68
- package/dist/esm/lib/api/gltf-scenegraph.js.map +1 -1
- package/dist/esm/lib/api/normalize-gltf-v1.js +3 -34
- package/dist/esm/lib/api/normalize-gltf-v1.js.map +1 -1
- package/dist/esm/lib/api/post-process-gltf.js +26 -93
- package/dist/esm/lib/api/post-process-gltf.js.map +1 -1
- package/dist/esm/lib/encoders/encode-glb.js +9 -2
- package/dist/esm/lib/encoders/encode-glb.js.map +1 -1
- package/dist/esm/lib/encoders/encode-gltf.js +6 -4
- package/dist/esm/lib/encoders/encode-gltf.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js +5 -6
- package/dist/esm/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/esm/lib/extensions/EXT_texture_webp.js +4 -6
- package/dist/esm/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_binary_gltf.js +3 -2
- package/dist/esm/lib/extensions/KHR_binary_gltf.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js +18 -17
- package/dist/esm/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_texture_basisu.js +4 -3
- package/dist/esm/lib/extensions/KHR_texture_basisu.js.map +1 -1
- package/dist/esm/lib/extensions/KHR_texture_transform.js +8 -34
- package/dist/esm/lib/extensions/KHR_texture_transform.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js +2 -13
- package/dist/esm/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js +4 -4
- package/dist/esm/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js +3 -2
- package/dist/esm/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js +10 -10
- package/dist/esm/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
- package/dist/esm/lib/gltf-utils/get-typed-array.js +4 -0
- package/dist/esm/lib/gltf-utils/get-typed-array.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js +7 -11
- package/dist/esm/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-constants.js +1 -0
- package/dist/esm/lib/gltf-utils/gltf-constants.js.map +1 -1
- package/dist/esm/lib/gltf-utils/gltf-utils.js +0 -2
- package/dist/esm/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/esm/lib/gltf-utils/resolve-url.js +1 -4
- package/dist/esm/lib/gltf-utils/resolve-url.js.map +1 -1
- package/dist/esm/lib/parsers/parse-glb.js +19 -16
- package/dist/esm/lib/parsers/parse-glb.js.map +1 -1
- package/dist/esm/lib/parsers/parse-gltf.js +11 -16
- package/dist/esm/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/esm/lib/types/glb-types.js.map +1 -1
- package/dist/esm/lib/types/gltf-json-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-postprocessed-schema.js.map +1 -1
- package/dist/esm/lib/types/gltf-types.js.map +1 -1
- package/dist/esm/lib/utils/assert.js +1 -0
- package/dist/esm/lib/utils/assert.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/meshopt/meshopt-decoder.js +11 -15
- package/dist/esm/meshopt/meshopt-decoder.js.map +1 -1
- package/dist/esm/webp/webp.js +3 -5
- package/dist/esm/webp/webp.js.map +1 -1
- package/dist/lib/api/gltf-extensions.js +5 -1
- package/dist/lib/api/normalize-gltf-v1.js +5 -1
- package/dist/lib/parsers/parse-gltf.js +5 -1
- package/package.json +6 -6
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.encodeGLTFSync = encodeGLTFSync;
|
|
9
|
-
|
|
10
8
|
var _encodeGlb = _interopRequireDefault(require("./encode-glb"));
|
|
11
9
|
|
|
12
10
|
function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {
|
|
13
11
|
convertBuffersToBase64(gltf);
|
|
12
|
+
|
|
14
13
|
return (0, _encodeGlb.default)(gltf, arrayBuffer, byteOffset, options);
|
|
15
14
|
}
|
|
16
|
-
|
|
17
15
|
function convertBuffersToBase64(gltf) {
|
|
18
16
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
_ref$firstBuffer = _ref.firstBuffer,
|
|
18
|
+
firstBuffer = _ref$firstBuffer === void 0 ? 0 : _ref$firstBuffer;
|
|
22
19
|
if (gltf.buffers && gltf.buffers.length > firstBuffer) {
|
|
23
20
|
throw new Error('encodeGLTF: multiple buffers not yet implemented');
|
|
24
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"encode-gltf.js","names":["encodeGLTFSync","gltf","arrayBuffer","byteOffset","options","convertBuffersToBase64","encodeGLBSync","firstBuffer","buffers","length","Error"],"sources":["../../../../src/lib/encoders/encode-gltf.ts"],"sourcesContent":["import encodeGLBSync from './encode-glb';\n\n// Encode the full glTF file as a binary GLB file\n// Returns an ArrayBuffer that represents the complete GLB image that can be saved to file\n//\n// TODO - Does not support encoding to non-GLB versions of glTF format\n// - Encode as a textual JSON file with binary data in base64 data URLs.\n// - Encode as a JSON with all images (and buffers?) in separate binary files\n//\n// glb-file-format-specification\n// https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#\n\nexport function encodeGLTFSync(gltf, arrayBuffer, byteOffset, options) {\n convertBuffersToBase64(gltf);\n\n // TODO: Copy buffers to binary\n\n return encodeGLBSync(gltf, arrayBuffer, byteOffset, options);\n}\n\nfunction convertBuffersToBase64(gltf, {firstBuffer = 0} = {}) {\n if (gltf.buffers && gltf.buffers.length > firstBuffer) {\n throw new Error('encodeGLTF: multiple buffers not yet implemented');\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAYO,SAASA,cAAc,CAACC,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAE;EACrEC,sBAAsB,CAACJ,IAAI,CAAC;;EAI5B,OAAO,IAAAK,kBAAa,EAACL,IAAI,EAAEC,WAAW,EAAEC,UAAU,EAAEC,OAAO,CAAC;AAC9D;AAEA,SAASC,sBAAsB,CAACJ,IAAI,EAA0B;EAAA,+EAAJ,CAAC,CAAC;IAAA,wBAArBM,WAAW;IAAXA,WAAW,iCAAG,CAAC;EACpD,IAAIN,IAAI,CAACO,OAAO,IAAIP,IAAI,CAACO,OAAO,CAACC,MAAM,GAAGF,WAAW,EAAE;IACrD,MAAM,IAAIG,KAAK,CAAC,kDAAkD,CAAC;EACrE;AACF"}
|
|
@@ -1,79 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.decode = decode;
|
|
9
8
|
exports.name = void 0;
|
|
10
|
-
|
|
11
9
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
-
|
|
13
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
|
-
|
|
15
11
|
var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
|
|
16
|
-
|
|
17
12
|
var _meshoptDecoder = require("../../meshopt/meshopt-decoder");
|
|
18
|
-
|
|
19
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; } } }; }
|
|
20
|
-
|
|
21
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); }
|
|
22
|
-
|
|
23
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; }
|
|
24
|
-
|
|
25
16
|
var DEFAULT_MESHOPT_OPTIONS = {
|
|
26
17
|
byteOffset: 0,
|
|
27
18
|
filter: 'NONE'
|
|
28
19
|
};
|
|
20
|
+
|
|
29
21
|
var EXT_MESHOPT_COMPRESSION = 'EXT_meshopt_compression';
|
|
30
22
|
var name = EXT_MESHOPT_COMPRESSION;
|
|
31
23
|
exports.name = name;
|
|
32
|
-
|
|
33
24
|
function decode(_x, _x2) {
|
|
34
25
|
return _decode.apply(this, arguments);
|
|
35
26
|
}
|
|
36
|
-
|
|
37
27
|
function _decode() {
|
|
38
28
|
_decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options) {
|
|
39
29
|
var _options$gltf;
|
|
40
|
-
|
|
41
30
|
var scenegraph, promises, _iterator, _step, bufferViewIndex;
|
|
42
|
-
|
|
43
31
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
44
32
|
while (1) {
|
|
45
33
|
switch (_context.prev = _context.next) {
|
|
46
34
|
case 0:
|
|
47
35
|
scenegraph = new _gltfScenegraph.default(gltfData);
|
|
48
|
-
|
|
49
36
|
if (options !== null && options !== void 0 && (_options$gltf = options.gltf) !== null && _options$gltf !== void 0 && _options$gltf.decompressMeshes) {
|
|
50
37
|
_context.next = 3;
|
|
51
38
|
break;
|
|
52
39
|
}
|
|
53
|
-
|
|
54
40
|
return _context.abrupt("return");
|
|
55
|
-
|
|
56
41
|
case 3:
|
|
57
42
|
promises = [];
|
|
58
43
|
_iterator = _createForOfIteratorHelper(gltfData.json.bufferViews || []);
|
|
59
|
-
|
|
60
44
|
try {
|
|
61
45
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
62
46
|
bufferViewIndex = _step.value;
|
|
63
47
|
promises.push(decodeMeshoptBufferView(scenegraph, bufferViewIndex));
|
|
64
48
|
}
|
|
49
|
+
|
|
65
50
|
} catch (err) {
|
|
66
51
|
_iterator.e(err);
|
|
67
52
|
} finally {
|
|
68
53
|
_iterator.f();
|
|
69
54
|
}
|
|
70
|
-
|
|
71
55
|
_context.next = 8;
|
|
72
56
|
return Promise.all(promises);
|
|
73
|
-
|
|
74
57
|
case 8:
|
|
75
58
|
scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);
|
|
76
|
-
|
|
77
59
|
case 9:
|
|
78
60
|
case "end":
|
|
79
61
|
return _context.stop();
|
|
@@ -83,39 +65,31 @@ function _decode() {
|
|
|
83
65
|
}));
|
|
84
66
|
return _decode.apply(this, arguments);
|
|
85
67
|
}
|
|
86
|
-
|
|
87
68
|
function decodeMeshoptBufferView(_x3, _x4) {
|
|
88
69
|
return _decodeMeshoptBufferView.apply(this, arguments);
|
|
89
70
|
}
|
|
90
|
-
|
|
91
71
|
function _decodeMeshoptBufferView() {
|
|
92
72
|
_decodeMeshoptBufferView = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, bufferView) {
|
|
93
73
|
var meshoptExtension, _meshoptExtension$byt, byteOffset, _meshoptExtension$byt2, byteLength, byteStride, count, mode, _meshoptExtension$fil, filter, bufferIndex, buffer, source, result;
|
|
94
|
-
|
|
95
74
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
96
75
|
while (1) {
|
|
97
76
|
switch (_context2.prev = _context2.next) {
|
|
98
77
|
case 0:
|
|
99
78
|
meshoptExtension = scenegraph.getObjectExtension(bufferView, EXT_MESHOPT_COMPRESSION);
|
|
100
|
-
|
|
101
79
|
if (!meshoptExtension) {
|
|
102
80
|
_context2.next = 9;
|
|
103
81
|
break;
|
|
104
82
|
}
|
|
105
|
-
|
|
106
83
|
_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;
|
|
107
84
|
buffer = scenegraph.gltf.buffers[bufferIndex];
|
|
108
85
|
source = new Uint8Array(buffer.arrayBuffer, buffer.byteOffset + byteOffset, byteLength);
|
|
109
86
|
result = new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer, bufferView.byteOffset, bufferView.byteLength);
|
|
110
87
|
_context2.next = 8;
|
|
111
88
|
return (0, _meshoptDecoder.meshoptDecodeGltfBuffer)(result, count, byteStride, source, mode, filter);
|
|
112
|
-
|
|
113
89
|
case 8:
|
|
114
90
|
return _context2.abrupt("return", result);
|
|
115
|
-
|
|
116
91
|
case 9:
|
|
117
92
|
return _context2.abrupt("return", null);
|
|
118
|
-
|
|
119
93
|
case 10:
|
|
120
94
|
case "end":
|
|
121
95
|
return _context2.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"EXT_meshopt_compression.js","names":["DEFAULT_MESHOPT_OPTIONS","byteOffset","filter","EXT_MESHOPT_COMPRESSION","name","decode","gltfData","options","scenegraph","GLTFScenegraph","gltf","decompressMeshes","promises","json","bufferViews","bufferViewIndex","push","decodeMeshoptBufferView","Promise","all","removeExtension","bufferView","meshoptExtension","getObjectExtension","byteLength","byteStride","count","mode","bufferIndex","buffer","buffers","source","Uint8Array","arrayBuffer","result","meshoptDecodeGltfBuffer"],"sources":["../../../../src/lib/extensions/EXT_meshopt_compression.ts"],"sourcesContent":["/* eslint-disable camelcase */\nimport type {GLTF, GLTFBufferView, GLTF_EXT_meshopt_compression} from '../types/gltf-types';\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 extensions\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<ArrayBuffer | null> {\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 return result;\n }\n\n return null;\n}\n"],"mappings":";;;;;;;;;;AAGA;AACA;AAAsE;AAAA;AAAA;AAItE,IAAMA,uBAAuB,GAAG;EAC9BC,UAAU,EAAE,CAAC;EACbC,MAAM,EAAE;AACV,CAAC;;AAGD,IAAMC,uBAAuB,GAAG,yBAAyB;AAElD,IAAMC,IAAI,GAAGD,uBAAuB;AAAC;AAAA,SAEtBE,MAAM;EAAA;AAAA;AAAA;EAAA,oEAArB,iBAAsBC,QAAsB,EAAEC,OAA0B;IAAA;IAAA;IAAA;MAAA;QAAA;UAAA;YACvEC,UAAU,GAAG,IAAIC,uBAAc,CAACH,QAAQ,CAAC;YAAA,IAE1CC,OAAO,aAAPA,OAAO,gCAAPA,OAAO,CAAEG,IAAI,0CAAb,cAAeC,gBAAgB;cAAA;cAAA;YAAA;YAAA;UAAA;YAI9BC,QAAwB,GAAG,EAAE;YAAA,uCACLN,QAAQ,CAACO,IAAI,CAACC,WAAW,IAAI,EAAE;YAAA;cAA7D,oDAA+D;gBAApDC,eAAe;gBACxBH,QAAQ,CAACI,IAAI,CAACC,uBAAuB,CAACT,UAAU,EAAEO,eAAe,CAAC,CAAC;cACrE;;YAAC;cAAA;YAAA;cAAA;YAAA;YAAA;YAAA,OAGKG,OAAO,CAACC,GAAG,CAACP,QAAQ,CAAC;UAAA;YAG3BJ,UAAU,CAACY,eAAe,CAACjB,uBAAuB,CAAC;UAAC;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACrD;EAAA;AAAA;AAAA,SAGcc,uBAAuB;EAAA;AAAA;AAAA;EAAA,qFAAtC,kBACET,UAA0B,EAC1Ba,UAA0B;IAAA;IAAA;MAAA;QAAA;UAAA;YAEpBC,gBAAgB,GAAGd,UAAU,CAACe,kBAAkB,CACpDF,UAAU,EACVlB,uBAAuB,CACxB;YAAA,KACGmB,gBAAgB;cAAA;cAAA;YAAA;YAAA,wBASdA,gBAAgB,CAPlBrB,UAAU,EAAVA,UAAU,sCAAG,CAAC,mDAOZqB,gBAAgB,CANlBE,UAAU,EAAVA,UAAU,uCAAG,CAAC,2BACdC,UAAU,GAKRH,gBAAgB,CALlBG,UAAU,EACVC,KAAK,GAIHJ,gBAAgB,CAJlBI,KAAK,EACLC,IAAI,GAGFL,gBAAgB,CAHlBK,IAAI,0BAGFL,gBAAgB,CAFlBpB,MAAM,EAANA,MAAM,sCAAG,MAAM,0BACP0B,WAAW,GACjBN,gBAAgB,CADlBO,MAAM;YAEFA,MAAM,GAAGrB,UAAU,CAACE,IAAI,CAACoB,OAAO,CAACF,WAAW,CAAC;YAE7CG,MAAM,GAAG,IAAIC,UAAU,CAACH,MAAM,CAACI,WAAW,EAAEJ,MAAM,CAAC5B,UAAU,GAAGA,UAAU,EAAEuB,UAAU,CAAC;YACvFU,MAAM,GAAG,IAAIF,UAAU,CAC3BxB,UAAU,CAACE,IAAI,CAACoB,OAAO,CAACT,UAAU,CAACQ,MAAM,CAAC,CAACI,WAAW,EACtDZ,UAAU,CAACpB,UAAU,EACrBoB,UAAU,CAACG,UAAU,CACtB;YAAA;YAAA,OACK,IAAAW,uCAAuB,EAACD,MAAM,EAAER,KAAK,EAAED,UAAU,EAAEM,MAAM,EAAEJ,IAAI,EAAEzB,MAAM,CAAC;UAAA;YAAA,kCACvEgC,MAAM;UAAA;YAAA,kCAGR,IAAI;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CACZ;EAAA;AAAA"}
|
|
@@ -1,60 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.preprocess = preprocess;
|
|
9
7
|
exports.name = void 0;
|
|
10
|
-
|
|
8
|
+
exports.preprocess = preprocess;
|
|
11
9
|
var _images = require("@loaders.gl/images");
|
|
12
|
-
|
|
13
10
|
var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
|
|
14
|
-
|
|
15
11
|
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; } } }; }
|
|
16
|
-
|
|
17
12
|
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); }
|
|
18
|
-
|
|
19
13
|
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; }
|
|
20
|
-
|
|
21
14
|
var EXT_TEXTURE_WEBP = 'EXT_texture_webp';
|
|
15
|
+
|
|
22
16
|
var name = EXT_TEXTURE_WEBP;
|
|
23
|
-
exports.name = name;
|
|
24
17
|
|
|
18
|
+
exports.name = name;
|
|
25
19
|
function preprocess(gltfData, options) {
|
|
26
20
|
var scenegraph = new _gltfScenegraph.default(gltfData);
|
|
27
|
-
|
|
28
21
|
if (!(0, _images._isImageFormatSupported)('image/webp')) {
|
|
29
22
|
if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {
|
|
30
23
|
throw new Error("gltf: Required extension ".concat(EXT_TEXTURE_WEBP, " not supported by browser"));
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
return;
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
var json = scenegraph.json;
|
|
37
|
-
|
|
38
28
|
var _iterator = _createForOfIteratorHelper(json.textures || []),
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
_step;
|
|
41
30
|
try {
|
|
42
31
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
43
32
|
var texture = _step.value;
|
|
44
33
|
var extension = scenegraph.getObjectExtension(texture, EXT_TEXTURE_WEBP);
|
|
45
|
-
|
|
46
34
|
if (extension) {
|
|
47
35
|
texture.source = extension.source;
|
|
48
36
|
}
|
|
49
|
-
|
|
50
37
|
scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);
|
|
51
38
|
}
|
|
39
|
+
|
|
52
40
|
} catch (err) {
|
|
53
41
|
_iterator.e(err);
|
|
54
42
|
} finally {
|
|
55
43
|
_iterator.f();
|
|
56
44
|
}
|
|
57
|
-
|
|
58
45
|
scenegraph.removeExtension(EXT_TEXTURE_WEBP);
|
|
59
46
|
}
|
|
60
47
|
//# sourceMappingURL=EXT_texture_webp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"EXT_texture_webp.js","names":["EXT_TEXTURE_WEBP","name","preprocess","gltfData","options","scenegraph","GLTFScenegraph","_isImageFormatSupported","getRequiredExtensions","includes","Error","json","textures","texture","extension","getObjectExtension","source","removeObjectExtension","removeExtension"],"sources":["../../../../src/lib/extensions/EXT_texture_webp.ts"],"sourcesContent":["// GLTF EXTENSION: EXT_TEXTURE_WEBP\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/EXT_TEXTURE_WEBP\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_EXT_texture_webp} from '../types/gltf-types';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\n\nimport {_isImageFormatSupported} from '@loaders.gl/images';\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst EXT_TEXTURE_WEBP = 'EXT_texture_webp';\n\n/** Extension name */\nexport const name = EXT_TEXTURE_WEBP;\n\n/**\n * Replaces a texture source reference with the extension texture\n * Done in preprocess() to prevent load of default image\n */\nexport function preprocess(gltfData: {json: GLTF}, options: GLTFLoaderOptions): void {\n const scenegraph = new GLTFScenegraph(gltfData);\n\n if (!_isImageFormatSupported('image/webp')) {\n if (scenegraph.getRequiredExtensions().includes(EXT_TEXTURE_WEBP)) {\n throw new Error(`gltf: Required extension ${EXT_TEXTURE_WEBP} not supported by browser`);\n }\n return;\n }\n\n const {json} = scenegraph;\n\n for (const texture of json.textures || []) {\n const extension = scenegraph.getObjectExtension<GLTF_EXT_texture_webp>(\n texture,\n EXT_TEXTURE_WEBP\n );\n if (extension) {\n texture.source = extension.source;\n }\n scenegraph.removeObjectExtension(texture, EXT_TEXTURE_WEBP);\n }\n\n // Remove the top-level extension\n scenegraph.removeExtension(EXT_TEXTURE_WEBP);\n}\n"],"mappings":";;;;;;;;AAOA;AACA;AAAoD;AAAA;AAAA;AAEpD,IAAMA,gBAAgB,GAAG,kBAAkB;;AAGpC,IAAMC,IAAI,GAAGD,gBAAgB;;AAAC;AAM9B,SAASE,UAAU,CAACC,QAAsB,EAAEC,OAA0B,EAAQ;EACnF,IAAMC,UAAU,GAAG,IAAIC,uBAAc,CAACH,QAAQ,CAAC;EAE/C,IAAI,CAAC,IAAAI,+BAAuB,EAAC,YAAY,CAAC,EAAE;IAC1C,IAAIF,UAAU,CAACG,qBAAqB,EAAE,CAACC,QAAQ,CAACT,gBAAgB,CAAC,EAAE;MACjE,MAAM,IAAIU,KAAK,oCAA6BV,gBAAgB,+BAA4B;IAC1F;IACA;EACF;EAEA,IAAOW,IAAI,GAAIN,UAAU,CAAlBM,IAAI;EAAe,2CAEJA,IAAI,CAACC,QAAQ,IAAI,EAAE;IAAA;EAAA;IAAzC,oDAA2C;MAAA,IAAhCC,OAAO;MAChB,IAAMC,SAAS,GAAGT,UAAU,CAACU,kBAAkB,CAC7CF,OAAO,EACPb,gBAAgB,CACjB;MACD,IAAIc,SAAS,EAAE;QACbD,OAAO,CAACG,MAAM,GAAGF,SAAS,CAACE,MAAM;MACnC;MACAX,UAAU,CAACY,qBAAqB,CAACJ,OAAO,EAAEb,gBAAgB,CAAC;IAC7D;;EAAC;IAAA;EAAA;IAAA;EAAA;EAGDK,UAAU,CAACa,eAAe,CAAClB,gBAAgB,CAAC;AAC9C"}
|
|
@@ -1,43 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.preprocess = preprocess;
|
|
9
7
|
exports.name = void 0;
|
|
10
|
-
|
|
8
|
+
exports.preprocess = preprocess;
|
|
11
9
|
var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
|
|
12
|
-
|
|
13
10
|
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
|
-
|
|
15
11
|
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
|
-
|
|
17
12
|
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; }
|
|
18
|
-
|
|
19
13
|
var KHR_BINARY_GLTF = 'KHR_binary_glTF';
|
|
14
|
+
|
|
20
15
|
var name = KHR_BINARY_GLTF;
|
|
21
16
|
exports.name = name;
|
|
22
|
-
|
|
23
17
|
function preprocess(gltfData) {
|
|
24
18
|
var gltfScenegraph = new _gltfScenegraph.default(gltfData);
|
|
25
19
|
var json = gltfScenegraph.json;
|
|
26
20
|
|
|
27
21
|
var _iterator = _createForOfIteratorHelper(json.images || []),
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
_step;
|
|
30
23
|
try {
|
|
24
|
+
|
|
31
25
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
32
26
|
var image = _step.value;
|
|
33
27
|
var extension = gltfScenegraph.getObjectExtension(image, KHR_BINARY_GLTF);
|
|
34
|
-
|
|
35
28
|
if (extension) {
|
|
36
29
|
Object.assign(image, extension);
|
|
37
30
|
}
|
|
38
|
-
|
|
39
31
|
gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);
|
|
40
32
|
}
|
|
33
|
+
|
|
41
34
|
} catch (err) {
|
|
42
35
|
_iterator.e(err);
|
|
43
36
|
} finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"KHR_binary_gltf.js","names":["KHR_BINARY_GLTF","name","preprocess","gltfData","gltfScenegraph","GLTFScenegraph","json","images","image","extension","getObjectExtension","Object","assign","removeObjectExtension","buffers","uri","removeExtension"],"sources":["../../../../src/lib/extensions/KHR_binary_gltf.ts"],"sourcesContent":["// GLTF 1.0 EXTENSION: KHR_binary_glTF\n// https://github.com/KhronosGroup/glTF/tree/master/extensions/1.0/Khronos/KHR_binary_glTF\n/* eslint-disable camelcase */\n\nimport type {GLTF, GLTF_KHR_binary_glTF} from '../types/gltf-types';\n\nimport GLTFScenegraph from '../api/gltf-scenegraph';\n\nconst KHR_BINARY_GLTF = 'KHR_binary_glTF';\n\n/** Extension name */\nexport const name = KHR_BINARY_GLTF;\n\nexport function preprocess(gltfData: {json: GLTF}): void {\n const gltfScenegraph = new GLTFScenegraph(gltfData);\n const {json} = gltfScenegraph;\n\n // Note: json.buffers.binary_glTF also needs to be replaced\n // This is currently done during gltf normalization\n\n // Image and shader nodes can have the extension\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/image.KHR_binary_glTF.schema.json\n for (const image of json.images || []) {\n const extension = gltfScenegraph.getObjectExtension<GLTF_KHR_binary_glTF>(\n image,\n KHR_BINARY_GLTF\n );\n // The data in the extension is valid as glTF 2.0 data inside the object, so just copy it in\n if (extension) {\n Object.assign(image, extension);\n }\n gltfScenegraph.removeObjectExtension(image, KHR_BINARY_GLTF);\n }\n\n // TODO shaders - At least traverse and throw error if used?\n // https://github.com/KhronosGroup/glTF/blob/master/extensions/1.0/Khronos/KHR_binary_glTF/schema/shader.KHR_binary_glTF.schema.json\n\n // glTF v1 one files have a partially formed URI field that is not expected in (and causes problems in) 2.0\n if (json.buffers && json.buffers[0]) {\n delete json.buffers[0].uri;\n }\n\n // Remove the top-level extension as it has now been removed from all nodes\n gltfScenegraph.removeExtension(KHR_BINARY_GLTF);\n}\n\n// KHR_binary_gltf is a 1.0 extension that is supported natively by 2.0\n// export function encode() {\n// throw new Error(KHR_BINARY_GLTF);\n// }\n"],"mappings":";;;;;;;;AAMA;AAAoD;AAAA;AAAA;AAEpD,IAAMA,eAAe,GAAG,iBAAiB;;AAGlC,IAAMC,IAAI,GAAGD,eAAe;AAAC;AAE7B,SAASE,UAAU,CAACC,QAAsB,EAAQ;EACvD,IAAMC,cAAc,GAAG,IAAIC,uBAAc,CAACF,QAAQ,CAAC;EACnD,IAAOG,IAAI,GAAIF,cAAc,CAAtBE,IAAI;;EAAmB,2CAOVA,IAAI,CAACC,MAAM,IAAI,EAAE;IAAA;EAAA;;IAArC,oDAAuC;MAAA,IAA5BC,KAAK;MACd,IAAMC,SAAS,GAAGL,cAAc,CAACM,kBAAkB,CACjDF,KAAK,EACLR,eAAe,CAChB;MAED,IAAIS,SAAS,EAAE;QACbE,MAAM,CAACC,MAAM,CAACJ,KAAK,EAAEC,SAAS,CAAC;MACjC;MACAL,cAAc,CAACS,qBAAqB,CAACL,KAAK,EAAER,eAAe,CAAC;IAC9D;;EAAC;IAAA;EAAA;IAAA;EAAA;;EAMD,IAAIM,IAAI,CAACQ,OAAO,IAAIR,IAAI,CAACQ,OAAO,CAAC,CAAC,CAAC,EAAE;IACnC,OAAOR,IAAI,CAACQ,OAAO,CAAC,CAAC,CAAC,CAACC,GAAG;EAC5B;;EAGAX,cAAc,CAACY,eAAe,CAAChB,eAAe,CAAC;AACjD"}
|
|
@@ -1,60 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _regeneratorRuntime2 = require("@babel/runtime/regenerator");
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
exports.preprocess = preprocess;
|
|
11
8
|
exports.decode = decode;
|
|
12
9
|
exports.encode = encode;
|
|
13
10
|
exports.name = void 0;
|
|
14
|
-
|
|
11
|
+
exports.preprocess = preprocess;
|
|
15
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
16
|
-
|
|
17
13
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
18
|
-
|
|
19
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
20
|
-
|
|
21
15
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
22
|
-
|
|
23
16
|
var _draco = require("@loaders.gl/draco");
|
|
24
|
-
|
|
25
17
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
26
|
-
|
|
27
18
|
var _gltfScenegraph = _interopRequireDefault(require("../api/gltf-scenegraph"));
|
|
28
|
-
|
|
29
19
|
var _gltfAttributeUtils = require("../gltf-utils/gltf-attribute-utils");
|
|
30
|
-
|
|
31
|
-
function
|
|
32
|
-
|
|
33
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
34
|
-
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
22
|
var _marked = _regeneratorRuntime2.mark(makeMeshPrimitiveIterator);
|
|
36
|
-
|
|
37
23
|
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; } } }; }
|
|
38
|
-
|
|
39
24
|
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); }
|
|
40
|
-
|
|
41
25
|
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; }
|
|
42
|
-
|
|
43
26
|
var KHR_DRACO_MESH_COMPRESSION = 'KHR_draco_mesh_compression';
|
|
27
|
+
|
|
44
28
|
var name = KHR_DRACO_MESH_COMPRESSION;
|
|
45
29
|
exports.name = name;
|
|
46
|
-
|
|
47
30
|
function preprocess(gltfData, options, context) {
|
|
48
31
|
var scenegraph = new _gltfScenegraph.default(gltfData);
|
|
49
|
-
|
|
50
32
|
var _iterator = _createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph)),
|
|
51
|
-
|
|
52
|
-
|
|
33
|
+
_step;
|
|
53
34
|
try {
|
|
54
35
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
55
36
|
var primitive = _step.value;
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
38
|
+
}
|
|
58
39
|
}
|
|
59
40
|
} catch (err) {
|
|
60
41
|
_iterator.e(err);
|
|
@@ -62,17 +43,13 @@ function preprocess(gltfData, options, context) {
|
|
|
62
43
|
_iterator.f();
|
|
63
44
|
}
|
|
64
45
|
}
|
|
65
|
-
|
|
66
46
|
function decode(_x, _x2, _x3) {
|
|
67
47
|
return _decode.apply(this, arguments);
|
|
68
48
|
}
|
|
69
|
-
|
|
70
49
|
function _decode() {
|
|
71
50
|
_decode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(gltfData, options, context) {
|
|
72
51
|
var _options$gltf;
|
|
73
|
-
|
|
74
52
|
var scenegraph, promises, _iterator5, _step5, primitive;
|
|
75
|
-
|
|
76
53
|
return _regenerator.default.wrap(function _callee$(_context2) {
|
|
77
54
|
while (1) {
|
|
78
55
|
switch (_context2.prev = _context2.next) {
|
|
@@ -81,34 +58,28 @@ function _decode() {
|
|
|
81
58
|
_context2.next = 2;
|
|
82
59
|
break;
|
|
83
60
|
}
|
|
84
|
-
|
|
85
61
|
return _context2.abrupt("return");
|
|
86
|
-
|
|
87
62
|
case 2:
|
|
88
63
|
scenegraph = new _gltfScenegraph.default(gltfData);
|
|
89
64
|
promises = [];
|
|
90
65
|
_iterator5 = _createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph));
|
|
91
|
-
|
|
92
66
|
try {
|
|
93
67
|
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
94
68
|
primitive = _step5.value;
|
|
95
|
-
|
|
96
69
|
if (scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION)) {
|
|
97
70
|
promises.push(decompressPrimitive(scenegraph, primitive, options, context));
|
|
98
71
|
}
|
|
99
72
|
}
|
|
73
|
+
|
|
100
74
|
} catch (err) {
|
|
101
75
|
_iterator5.e(err);
|
|
102
76
|
} finally {
|
|
103
77
|
_iterator5.f();
|
|
104
78
|
}
|
|
105
|
-
|
|
106
79
|
_context2.next = 8;
|
|
107
80
|
return Promise.all(promises);
|
|
108
|
-
|
|
109
81
|
case 8:
|
|
110
82
|
scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);
|
|
111
|
-
|
|
112
83
|
case 9:
|
|
113
84
|
case "end":
|
|
114
85
|
return _context2.stop();
|
|
@@ -118,14 +89,11 @@ function _decode() {
|
|
|
118
89
|
}));
|
|
119
90
|
return _decode.apply(this, arguments);
|
|
120
91
|
}
|
|
121
|
-
|
|
122
92
|
function encode(gltfData) {
|
|
123
93
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
124
94
|
var scenegraph = new _gltfScenegraph.default(gltfData);
|
|
125
|
-
|
|
126
95
|
var _iterator2 = _createForOfIteratorHelper(scenegraph.json.meshes || []),
|
|
127
|
-
|
|
128
|
-
|
|
96
|
+
_step2;
|
|
129
97
|
try {
|
|
130
98
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
131
99
|
var mesh = _step2.value;
|
|
@@ -142,24 +110,19 @@ function encode(gltfData) {
|
|
|
142
110
|
function decompressPrimitive(_x4, _x5, _x6, _x7) {
|
|
143
111
|
return _decompressPrimitive.apply(this, arguments);
|
|
144
112
|
}
|
|
145
|
-
|
|
146
113
|
function _decompressPrimitive() {
|
|
147
114
|
_decompressPrimitive = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(scenegraph, primitive, options, context) {
|
|
148
115
|
var dracoExtension, buffer, bufferCopy, parse, dracoOptions, decodedData, decodedAttributes, _i, _Object$entries, _Object$entries$_i, attributeName, decodedAttribute, accessorIndex, accessor;
|
|
149
|
-
|
|
150
116
|
return _regenerator.default.wrap(function _callee2$(_context3) {
|
|
151
117
|
while (1) {
|
|
152
118
|
switch (_context3.prev = _context3.next) {
|
|
153
119
|
case 0:
|
|
154
120
|
dracoExtension = scenegraph.getObjectExtension(primitive, KHR_DRACO_MESH_COMPRESSION);
|
|
155
|
-
|
|
156
121
|
if (dracoExtension) {
|
|
157
122
|
_context3.next = 3;
|
|
158
123
|
break;
|
|
159
124
|
}
|
|
160
|
-
|
|
161
125
|
return _context3.abrupt("return");
|
|
162
|
-
|
|
163
126
|
case 3:
|
|
164
127
|
buffer = scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);
|
|
165
128
|
bufferCopy = (0, _loaderUtils.sliceArrayBuffer)(buffer.buffer, buffer.byteOffset);
|
|
@@ -168,18 +131,14 @@ function _decompressPrimitive() {
|
|
|
168
131
|
delete dracoOptions['3d-tiles'];
|
|
169
132
|
_context3.next = 10;
|
|
170
133
|
return parse(bufferCopy, _draco.DracoLoader, dracoOptions, context);
|
|
171
|
-
|
|
172
134
|
case 10:
|
|
173
135
|
decodedData = _context3.sent;
|
|
174
136
|
decodedAttributes = (0, _gltfAttributeUtils.getGLTFAccessors)(decodedData.attributes);
|
|
175
|
-
|
|
176
137
|
for (_i = 0, _Object$entries = Object.entries(decodedAttributes); _i < _Object$entries.length; _i++) {
|
|
177
138
|
_Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2), attributeName = _Object$entries$_i[0], decodedAttribute = _Object$entries$_i[1];
|
|
178
|
-
|
|
179
139
|
if (attributeName in primitive.attributes) {
|
|
180
140
|
accessorIndex = primitive.attributes[attributeName];
|
|
181
141
|
accessor = scenegraph.getAccessor(accessorIndex);
|
|
182
|
-
|
|
183
142
|
if (accessor !== null && accessor !== void 0 && accessor.min && accessor !== null && accessor !== void 0 && accessor.max) {
|
|
184
143
|
decodedAttribute.min = accessor.min;
|
|
185
144
|
decodedAttribute.max = accessor.max;
|
|
@@ -188,13 +147,11 @@ function _decompressPrimitive() {
|
|
|
188
147
|
}
|
|
189
148
|
|
|
190
149
|
primitive.attributes = decodedAttributes;
|
|
191
|
-
|
|
192
150
|
if (decodedData.indices) {
|
|
193
151
|
primitive.indices = (0, _gltfAttributeUtils.getGLTFAccessor)(decodedData.indices);
|
|
194
152
|
}
|
|
195
153
|
|
|
196
154
|
checkPrimitive(primitive);
|
|
197
|
-
|
|
198
155
|
case 16:
|
|
199
156
|
case "end":
|
|
200
157
|
return _context3.stop();
|
|
@@ -207,11 +164,9 @@ function _decompressPrimitive() {
|
|
|
207
164
|
|
|
208
165
|
function compressMesh(attributes, indices) {
|
|
209
166
|
var _context$parseSync;
|
|
210
|
-
|
|
211
167
|
var mode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;
|
|
212
168
|
var options = arguments.length > 3 ? arguments[3] : undefined;
|
|
213
169
|
var context = arguments.length > 4 ? arguments[4] : undefined;
|
|
214
|
-
|
|
215
170
|
if (!options.DracoWriter) {
|
|
216
171
|
throw new Error('options.gltf.DracoWriter not provided');
|
|
217
172
|
}
|
|
@@ -219,12 +174,11 @@ function compressMesh(attributes, indices) {
|
|
|
219
174
|
var compressedData = options.DracoWriter.encodeSync({
|
|
220
175
|
attributes: attributes
|
|
221
176
|
});
|
|
177
|
+
|
|
222
178
|
var decodedData = context === null || context === void 0 ? void 0 : (_context$parseSync = context.parseSync) === null || _context$parseSync === void 0 ? void 0 : _context$parseSync.call(context, {
|
|
223
179
|
attributes: attributes
|
|
224
180
|
});
|
|
225
|
-
|
|
226
181
|
var fauxAccessors = options._addFauxAttributes(decodedData.attributes);
|
|
227
|
-
|
|
228
182
|
var bufferViewIndex = options.addBufferView(compressedData);
|
|
229
183
|
var glTFMesh = {
|
|
230
184
|
primitives: [{
|
|
@@ -236,6 +190,7 @@ function compressMesh(attributes, indices) {
|
|
|
236
190
|
})
|
|
237
191
|
}]
|
|
238
192
|
};
|
|
193
|
+
|
|
239
194
|
return glTFMesh;
|
|
240
195
|
}
|
|
241
196
|
|
|
@@ -244,83 +199,60 @@ function checkPrimitive(primitive) {
|
|
|
244
199
|
throw new Error('glTF: Empty primitive detected: Draco decompression failure?');
|
|
245
200
|
}
|
|
246
201
|
}
|
|
247
|
-
|
|
248
202
|
function makeMeshPrimitiveIterator(scenegraph) {
|
|
249
203
|
var _iterator3, _step3, mesh, _iterator4, _step4, primitive;
|
|
250
|
-
|
|
251
204
|
return _regenerator.default.wrap(function makeMeshPrimitiveIterator$(_context) {
|
|
252
205
|
while (1) {
|
|
253
206
|
switch (_context.prev = _context.next) {
|
|
254
207
|
case 0:
|
|
255
208
|
_iterator3 = _createForOfIteratorHelper(scenegraph.json.meshes || []);
|
|
256
209
|
_context.prev = 1;
|
|
257
|
-
|
|
258
210
|
_iterator3.s();
|
|
259
|
-
|
|
260
211
|
case 3:
|
|
261
212
|
if ((_step3 = _iterator3.n()).done) {
|
|
262
213
|
_context.next = 24;
|
|
263
214
|
break;
|
|
264
215
|
}
|
|
265
|
-
|
|
266
216
|
mesh = _step3.value;
|
|
267
217
|
_iterator4 = _createForOfIteratorHelper(mesh.primitives);
|
|
268
218
|
_context.prev = 6;
|
|
269
|
-
|
|
270
219
|
_iterator4.s();
|
|
271
|
-
|
|
272
220
|
case 8:
|
|
273
221
|
if ((_step4 = _iterator4.n()).done) {
|
|
274
222
|
_context.next = 14;
|
|
275
223
|
break;
|
|
276
224
|
}
|
|
277
|
-
|
|
278
225
|
primitive = _step4.value;
|
|
279
226
|
_context.next = 12;
|
|
280
227
|
return primitive;
|
|
281
|
-
|
|
282
228
|
case 12:
|
|
283
229
|
_context.next = 8;
|
|
284
230
|
break;
|
|
285
|
-
|
|
286
231
|
case 14:
|
|
287
232
|
_context.next = 19;
|
|
288
233
|
break;
|
|
289
|
-
|
|
290
234
|
case 16:
|
|
291
235
|
_context.prev = 16;
|
|
292
236
|
_context.t0 = _context["catch"](6);
|
|
293
|
-
|
|
294
237
|
_iterator4.e(_context.t0);
|
|
295
|
-
|
|
296
238
|
case 19:
|
|
297
239
|
_context.prev = 19;
|
|
298
|
-
|
|
299
240
|
_iterator4.f();
|
|
300
|
-
|
|
301
241
|
return _context.finish(19);
|
|
302
|
-
|
|
303
242
|
case 22:
|
|
304
243
|
_context.next = 3;
|
|
305
244
|
break;
|
|
306
|
-
|
|
307
245
|
case 24:
|
|
308
246
|
_context.next = 29;
|
|
309
247
|
break;
|
|
310
|
-
|
|
311
248
|
case 26:
|
|
312
249
|
_context.prev = 26;
|
|
313
250
|
_context.t1 = _context["catch"](1);
|
|
314
|
-
|
|
315
251
|
_iterator3.e(_context.t1);
|
|
316
|
-
|
|
317
252
|
case 29:
|
|
318
253
|
_context.prev = 29;
|
|
319
|
-
|
|
320
254
|
_iterator3.f();
|
|
321
|
-
|
|
322
255
|
return _context.finish(29);
|
|
323
|
-
|
|
324
256
|
case 32:
|
|
325
257
|
case "end":
|
|
326
258
|
return _context.stop();
|