@loaders.gl/gltf 3.4.13 → 3.4.15
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 +52 -56
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/glb-loader.js +10 -26
- package/dist/es5/glb-loader.js.map +1 -1
- package/dist/es5/glb-writer.js +9 -8
- package/dist/es5/glb-writer.js.map +1 -1
- package/dist/es5/gltf-loader.js +18 -40
- package/dist/es5/gltf-loader.js.map +1 -1
- package/dist/es5/gltf-writer.js +10 -9
- package/dist/es5/gltf-writer.js.map +1 -1
- package/dist/es5/index.js +7 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/api/gltf-extensions.js +19 -82
- package/dist/es5/lib/api/gltf-extensions.js.map +1 -1
- package/dist/es5/lib/api/gltf-scenegraph.js +395 -524
- package/dist/es5/lib/api/gltf-scenegraph.js.map +1 -1
- package/dist/es5/lib/api/normalize-gltf-v1.js +141 -259
- package/dist/es5/lib/api/normalize-gltf-v1.js.map +1 -1
- package/dist/es5/lib/api/post-process-gltf.js +263 -337
- package/dist/es5/lib/api/post-process-gltf.js.map +1 -1
- package/dist/es5/lib/encoders/encode-glb.js +20 -21
- package/dist/es5/lib/encoders/encode-glb.js.map +1 -1
- package/dist/es5/lib/encoders/encode-gltf.js +3 -3
- package/dist/es5/lib/encoders/encode-gltf.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js +34 -79
- package/dist/es5/lib/extensions/EXT_meshopt_compression.js.map +1 -1
- package/dist/es5/lib/extensions/EXT_texture_webp.js +11 -21
- package/dist/es5/lib/extensions/EXT_texture_webp.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_binary_gltf.js +11 -21
- package/dist/es5/lib/extensions/KHR_binary_gltf.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js +76 -201
- package/dist/es5/lib/extensions/KHR_draco_mesh_compression.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_basisu.js +11 -21
- package/dist/es5/lib/extensions/KHR_texture_basisu.js.map +1 -1
- package/dist/es5/lib/extensions/KHR_texture_transform.js +75 -114
- package/dist/es5/lib/extensions/KHR_texture_transform.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js +31 -48
- package/dist/es5/lib/extensions/deprecated/EXT_feature_metadata.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js +37 -84
- package/dist/es5/lib/extensions/deprecated/KHR_lights_punctual.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js +24 -57
- package/dist/es5/lib/extensions/deprecated/KHR_materials_unlit.js.map +1 -1
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js +33 -75
- package/dist/es5/lib/extensions/deprecated/KHR_techniques_webgl.js.map +1 -1
- package/dist/es5/lib/gltf-utils/get-typed-array.js +6 -6
- package/dist/es5/lib/gltf-utils/get-typed-array.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js +19 -18
- package/dist/es5/lib/gltf-utils/gltf-attribute-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-constants.js +7 -7
- package/dist/es5/lib/gltf-utils/gltf-constants.js.map +1 -1
- package/dist/es5/lib/gltf-utils/gltf-utils.js +28 -31
- package/dist/es5/lib/gltf-utils/gltf-utils.js.map +1 -1
- package/dist/es5/lib/gltf-utils/resolve-url.js +2 -2
- package/dist/es5/lib/gltf-utils/resolve-url.js.map +1 -1
- package/dist/es5/lib/parsers/parse-glb.js +35 -34
- package/dist/es5/lib/parsers/parse-glb.js.map +1 -1
- package/dist/es5/lib/parsers/parse-gltf.js +108 -230
- package/dist/es5/lib/parsers/parse-gltf.js.map +1 -1
- package/dist/es5/lib/types/gltf-types.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 +48 -162
- package/dist/es5/meshopt/meshopt-decoder.js.map +1 -1
- package/dist/es5/webp/webp.js +17 -69
- package/dist/es5/webp/webp.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/types/gltf-types.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.d.ts +3 -2
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +3 -1
- package/src/lib/types/gltf-types.ts +12 -3
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.isGLTF = isGLTF;
|
|
9
7
|
exports.parseGLTF = parseGLTF;
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
8
|
var _textures = require("@loaders.gl/textures");
|
|
13
9
|
var _images = require("@loaders.gl/images");
|
|
14
10
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
@@ -19,77 +15,47 @@ var _gltfExtensions = require("../api/gltf-extensions");
|
|
|
19
15
|
var _normalizeGltfV = require("../api/normalize-gltf-v1");
|
|
20
16
|
var _postProcessGltf = require("../api/post-process-gltf");
|
|
21
17
|
var _parseGlb = _interopRequireWildcard(require("./parse-glb"));
|
|
22
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function
|
|
23
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
24
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
25
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
26
|
-
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
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
20
|
function isGLTF(arrayBuffer, options) {
|
|
28
|
-
|
|
21
|
+
const byteOffset = 0;
|
|
29
22
|
return (0, _parseGlb.isGLB)(arrayBuffer, byteOffset, options);
|
|
30
23
|
}
|
|
31
|
-
function parseGLTF(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
54
|
-
(0, _gltfExtensions.preprocessExtensions)(gltf, options, context);
|
|
55
|
-
promises = [];
|
|
56
|
-
if (!(options !== null && options !== void 0 && (_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadBuffers && gltf.json.buffers)) {
|
|
57
|
-
_context.next = 10;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
_context.next = 10;
|
|
61
|
-
return loadBuffers(gltf, options, context);
|
|
62
|
-
case 10:
|
|
63
|
-
if (options !== null && options !== void 0 && (_options$gltf3 = options.gltf) !== null && _options$gltf3 !== void 0 && _options$gltf3.loadImages) {
|
|
64
|
-
_promise = loadImages(gltf, options, context);
|
|
65
|
-
promises.push(_promise);
|
|
66
|
-
}
|
|
67
|
-
promise = (0, _gltfExtensions.decodeExtensions)(gltf, options, context);
|
|
68
|
-
promises.push(promise);
|
|
69
|
-
_context.next = 15;
|
|
70
|
-
return Promise.all(promises);
|
|
71
|
-
case 15:
|
|
72
|
-
return _context.abrupt("return", options !== null && options !== void 0 && (_options$gltf4 = options.gltf) !== null && _options$gltf4 !== void 0 && _options$gltf4.postProcess ? (0, _postProcessGltf.postProcessGLTF)(gltf, options) : gltf);
|
|
73
|
-
case 16:
|
|
74
|
-
case "end":
|
|
75
|
-
return _context.stop();
|
|
76
|
-
}
|
|
77
|
-
}, _callee);
|
|
78
|
-
}));
|
|
79
|
-
return _parseGLTF.apply(this, arguments);
|
|
24
|
+
async function parseGLTF(gltf, arrayBufferOrString) {
|
|
25
|
+
var _options$gltf, _options$gltf2, _options$gltf3, _options$gltf4;
|
|
26
|
+
let byteOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
27
|
+
let options = arguments.length > 3 ? arguments[3] : undefined;
|
|
28
|
+
let context = arguments.length > 4 ? arguments[4] : undefined;
|
|
29
|
+
parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
|
|
30
|
+
(0, _normalizeGltfV.normalizeGLTFV1)(gltf, {
|
|
31
|
+
normalize: options === null || options === void 0 ? void 0 : (_options$gltf = options.gltf) === null || _options$gltf === void 0 ? void 0 : _options$gltf.normalize
|
|
32
|
+
});
|
|
33
|
+
(0, _gltfExtensions.preprocessExtensions)(gltf, options, context);
|
|
34
|
+
const promises = [];
|
|
35
|
+
if (options !== null && options !== void 0 && (_options$gltf2 = options.gltf) !== null && _options$gltf2 !== void 0 && _options$gltf2.loadBuffers && gltf.json.buffers) {
|
|
36
|
+
await loadBuffers(gltf, options, context);
|
|
37
|
+
}
|
|
38
|
+
if (options !== null && options !== void 0 && (_options$gltf3 = options.gltf) !== null && _options$gltf3 !== void 0 && _options$gltf3.loadImages) {
|
|
39
|
+
const promise = loadImages(gltf, options, context);
|
|
40
|
+
promises.push(promise);
|
|
41
|
+
}
|
|
42
|
+
const promise = (0, _gltfExtensions.decodeExtensions)(gltf, options, context);
|
|
43
|
+
promises.push(promise);
|
|
44
|
+
await Promise.all(promises);
|
|
45
|
+
return options !== null && options !== void 0 && (_options$gltf4 = options.gltf) !== null && _options$gltf4 !== void 0 && _options$gltf4.postProcess ? (0, _postProcessGltf.postProcessGLTF)(gltf, options) : gltf;
|
|
80
46
|
}
|
|
81
47
|
function parseGLTFContainerSync(gltf, data, byteOffset, options) {
|
|
82
48
|
if (options.uri) {
|
|
83
49
|
gltf.baseUri = options.uri;
|
|
84
50
|
}
|
|
85
51
|
if (data instanceof ArrayBuffer && !(0, _parseGlb.isGLB)(data, byteOffset, options)) {
|
|
86
|
-
|
|
52
|
+
const textDecoder = new TextDecoder();
|
|
87
53
|
data = textDecoder.decode(data);
|
|
88
54
|
}
|
|
89
55
|
if (typeof data === 'string') {
|
|
90
56
|
gltf.json = (0, _loaderUtils.parseJSON)(data);
|
|
91
57
|
} else if (data instanceof ArrayBuffer) {
|
|
92
|
-
|
|
58
|
+
const glb = {};
|
|
93
59
|
byteOffset = (0, _parseGlb.default)(glb, data, byteOffset, options.glb);
|
|
94
60
|
(0, _assert.assert)(glb.type === 'glTF', "Invalid GLB magic string ".concat(glb.type));
|
|
95
61
|
gltf._glb = glb;
|
|
@@ -97,191 +63,103 @@ function parseGLTFContainerSync(gltf, data, byteOffset, options) {
|
|
|
97
63
|
} else {
|
|
98
64
|
(0, _assert.assert)(false, 'GLTF: must be ArrayBuffer or string');
|
|
99
65
|
}
|
|
100
|
-
|
|
66
|
+
const buffers = gltf.json.buffers || [];
|
|
101
67
|
gltf.buffers = new Array(buffers.length).fill(null);
|
|
102
68
|
if (gltf._glb && gltf._glb.header.hasBinChunk) {
|
|
103
|
-
|
|
69
|
+
const {
|
|
70
|
+
binChunks
|
|
71
|
+
} = gltf._glb;
|
|
104
72
|
gltf.buffers[0] = {
|
|
105
73
|
arrayBuffer: binChunks[0].arrayBuffer,
|
|
106
74
|
byteOffset: binChunks[0].byteOffset,
|
|
107
75
|
byteLength: binChunks[0].byteLength
|
|
108
76
|
};
|
|
109
77
|
}
|
|
110
|
-
|
|
78
|
+
const images = gltf.json.images || [];
|
|
111
79
|
gltf.images = new Array(images.length).fill({});
|
|
112
80
|
}
|
|
113
|
-
function loadBuffers(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
response = _context2.sent;
|
|
141
|
-
_context2.next = 13;
|
|
142
|
-
return response === null || response === void 0 ? void 0 : (_response$arrayBuffer = response.arrayBuffer) === null || _response$arrayBuffer === void 0 ? void 0 : _response$arrayBuffer.call(response);
|
|
143
|
-
case 13:
|
|
144
|
-
arrayBuffer = _context2.sent;
|
|
145
|
-
gltf.buffers[i] = {
|
|
146
|
-
arrayBuffer: arrayBuffer,
|
|
147
|
-
byteOffset: 0,
|
|
148
|
-
byteLength: arrayBuffer.byteLength
|
|
149
|
-
};
|
|
150
|
-
delete buffer.uri;
|
|
151
|
-
_context2.next = 19;
|
|
152
|
-
break;
|
|
153
|
-
case 18:
|
|
154
|
-
if (gltf.buffers[i] === null) {
|
|
155
|
-
gltf.buffers[i] = {
|
|
156
|
-
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
157
|
-
byteOffset: 0,
|
|
158
|
-
byteLength: buffer.byteLength
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
case 19:
|
|
162
|
-
++i;
|
|
163
|
-
_context2.next = 2;
|
|
164
|
-
break;
|
|
165
|
-
case 22:
|
|
166
|
-
case "end":
|
|
167
|
-
return _context2.stop();
|
|
168
|
-
}
|
|
169
|
-
}, _callee2);
|
|
170
|
-
}));
|
|
171
|
-
return _loadBuffers.apply(this, arguments);
|
|
172
|
-
}
|
|
173
|
-
function loadImages(_x6, _x7, _x8) {
|
|
174
|
-
return _loadImages.apply(this, arguments);
|
|
81
|
+
async function loadBuffers(gltf, options, context) {
|
|
82
|
+
const buffers = gltf.json.buffers || [];
|
|
83
|
+
for (let i = 0; i < buffers.length; ++i) {
|
|
84
|
+
const buffer = buffers[i];
|
|
85
|
+
if (buffer.uri) {
|
|
86
|
+
var _context$fetch, _response$arrayBuffer;
|
|
87
|
+
const {
|
|
88
|
+
fetch
|
|
89
|
+
} = context;
|
|
90
|
+
(0, _assert.assert)(fetch);
|
|
91
|
+
const uri = (0, _resolveUrl.resolveUrl)(buffer.uri, options);
|
|
92
|
+
const response = await (context === null || context === void 0 ? void 0 : (_context$fetch = context.fetch) === null || _context$fetch === void 0 ? void 0 : _context$fetch.call(context, uri));
|
|
93
|
+
const arrayBuffer = await (response === null || response === void 0 ? void 0 : (_response$arrayBuffer = response.arrayBuffer) === null || _response$arrayBuffer === void 0 ? void 0 : _response$arrayBuffer.call(response));
|
|
94
|
+
gltf.buffers[i] = {
|
|
95
|
+
arrayBuffer,
|
|
96
|
+
byteOffset: 0,
|
|
97
|
+
byteLength: arrayBuffer.byteLength
|
|
98
|
+
};
|
|
99
|
+
delete buffer.uri;
|
|
100
|
+
} else if (gltf.buffers[i] === null) {
|
|
101
|
+
gltf.buffers[i] = {
|
|
102
|
+
arrayBuffer: new ArrayBuffer(buffer.byteLength),
|
|
103
|
+
byteOffset: 0,
|
|
104
|
+
byteLength: buffer.byteLength
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
175
108
|
}
|
|
176
|
-
function
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
promises = [];
|
|
185
|
-
_iterator2 = _createForOfIteratorHelper(imageIndices);
|
|
186
|
-
try {
|
|
187
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
188
|
-
imageIndex = _step2.value;
|
|
189
|
-
promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));
|
|
190
|
-
}
|
|
191
|
-
} catch (err) {
|
|
192
|
-
_iterator2.e(err);
|
|
193
|
-
} finally {
|
|
194
|
-
_iterator2.f();
|
|
195
|
-
}
|
|
196
|
-
_context3.next = 7;
|
|
197
|
-
return Promise.all(promises);
|
|
198
|
-
case 7:
|
|
199
|
-
return _context3.abrupt("return", _context3.sent);
|
|
200
|
-
case 8:
|
|
201
|
-
case "end":
|
|
202
|
-
return _context3.stop();
|
|
203
|
-
}
|
|
204
|
-
}, _callee3);
|
|
205
|
-
}));
|
|
206
|
-
return _loadImages.apply(this, arguments);
|
|
109
|
+
async function loadImages(gltf, options, context) {
|
|
110
|
+
const imageIndices = getReferencesImageIndices(gltf);
|
|
111
|
+
const images = gltf.json.images || [];
|
|
112
|
+
const promises = [];
|
|
113
|
+
for (const imageIndex of imageIndices) {
|
|
114
|
+
promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));
|
|
115
|
+
}
|
|
116
|
+
return await Promise.all(promises);
|
|
207
117
|
}
|
|
208
118
|
function getReferencesImageIndices(gltf) {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
215
|
-
var texture = _step.value;
|
|
216
|
-
if (texture.source !== undefined) {
|
|
217
|
-
imageIndices.add(texture.source);
|
|
218
|
-
}
|
|
119
|
+
const imageIndices = new Set();
|
|
120
|
+
const textures = gltf.json.textures || [];
|
|
121
|
+
for (const texture of textures) {
|
|
122
|
+
if (texture.source !== undefined) {
|
|
123
|
+
imageIndices.add(texture.source);
|
|
219
124
|
}
|
|
220
|
-
} catch (err) {
|
|
221
|
-
_iterator.e(err);
|
|
222
|
-
} finally {
|
|
223
|
-
_iterator.f();
|
|
224
125
|
}
|
|
225
126
|
return Array.from(imageIndices).sort();
|
|
226
127
|
}
|
|
227
|
-
function loadImage(
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
format: (0, _textures.selectSupportedBasisFormat)()
|
|
264
|
-
}
|
|
265
|
-
}, context);
|
|
266
|
-
case 14:
|
|
267
|
-
parsedImage = _context4.sent;
|
|
268
|
-
if (parsedImage && parsedImage[0]) {
|
|
269
|
-
parsedImage = {
|
|
270
|
-
compressed: true,
|
|
271
|
-
mipmaps: false,
|
|
272
|
-
width: parsedImage[0].width,
|
|
273
|
-
height: parsedImage[0].height,
|
|
274
|
-
data: parsedImage[0]
|
|
275
|
-
};
|
|
276
|
-
}
|
|
277
|
-
gltf.images = gltf.images || [];
|
|
278
|
-
gltf.images[index] = parsedImage;
|
|
279
|
-
case 18:
|
|
280
|
-
case "end":
|
|
281
|
-
return _context4.stop();
|
|
282
|
-
}
|
|
283
|
-
}, _callee4);
|
|
284
|
-
}));
|
|
285
|
-
return _loadImage.apply(this, arguments);
|
|
128
|
+
async function loadImage(gltf, image, index, options, context) {
|
|
129
|
+
const {
|
|
130
|
+
fetch,
|
|
131
|
+
parse
|
|
132
|
+
} = context;
|
|
133
|
+
let arrayBuffer;
|
|
134
|
+
if (image.uri && !image.hasOwnProperty('bufferView')) {
|
|
135
|
+
const uri = (0, _resolveUrl.resolveUrl)(image.uri, options);
|
|
136
|
+
const response = await fetch(uri);
|
|
137
|
+
arrayBuffer = await response.arrayBuffer();
|
|
138
|
+
image.bufferView = {
|
|
139
|
+
data: arrayBuffer
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (Number.isFinite(image.bufferView)) {
|
|
143
|
+
const array = (0, _getTypedArray.getTypedArrayForBufferView)(gltf.json, gltf.buffers, image.bufferView);
|
|
144
|
+
arrayBuffer = (0, _loaderUtils.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
|
|
145
|
+
}
|
|
146
|
+
(0, _assert.assert)(arrayBuffer, 'glTF image has no data');
|
|
147
|
+
let parsedImage = await parse(arrayBuffer, [_images.ImageLoader, _textures.BasisLoader], {
|
|
148
|
+
mimeType: image.mimeType,
|
|
149
|
+
basis: options.basis || {
|
|
150
|
+
format: (0, _textures.selectSupportedBasisFormat)()
|
|
151
|
+
}
|
|
152
|
+
}, context);
|
|
153
|
+
if (parsedImage && parsedImage[0]) {
|
|
154
|
+
parsedImage = {
|
|
155
|
+
compressed: true,
|
|
156
|
+
mipmaps: false,
|
|
157
|
+
width: parsedImage[0].width,
|
|
158
|
+
height: parsedImage[0].height,
|
|
159
|
+
data: parsedImage[0]
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
gltf.images = gltf.images || [];
|
|
163
|
+
gltf.images[index] = parsedImage;
|
|
286
164
|
}
|
|
287
165
|
//# sourceMappingURL=parse-gltf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-gltf.js","names":["_textures","require","_images","_loaderUtils","_assert","_resolveUrl","_getTypedArray","_gltfExtensions","_normalizeGltfV","_postProcessGltf","_parseGlb","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","isGLTF","arrayBuffer","options","byteOffset","isGLB","parseGLTF","_x","_x2","_parseGLTF","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","gltf","arrayBufferOrString","_options$gltf","_options$gltf2","_options$gltf3","_options$gltf4","context","promises","_promise","promise","_args","wrap","_callee$","_context","prev","undefined","parseGLTFContainerSync","normalizeGLTFV1","normalize","preprocessExtensions","loadBuffers","json","buffers","loadImages","push","decodeExtensions","Promise","all","abrupt","postProcess","postProcessGLTF","stop","data","uri","baseUri","ArrayBuffer","textDecoder","TextDecoder","decode","parseJSON","glb","parseGLBSync","assert","type","concat","_glb","fill","header","hasBinChunk","binChunks","byteLength","images","_x3","_x4","_x5","_loadBuffers","_callee2","buffer","_context$fetch","_response$arrayBuffer","fetch","response","_callee2$","_context2","resolveUrl","sent","_x6","_x7","_x8","_loadImages","_callee3","imageIndices","_iterator2","_step2","imageIndex","_callee3$","_context3","getReferencesImageIndices","loadImage","Set","textures","_iterator","_step","texture","source","add","sort","_x9","_x10","_x11","_x12","_x13","_loadImage","_callee4","image","index","parse","array","parsedImage","_callee4$","_context4","bufferView","Number","isFinite","getTypedArrayForBufferView","sliceArrayBuffer","ImageLoader","BasisLoader","mimeType","basis","format","selectSupportedBasisFormat","compressed","mipmaps","width","height"],"sources":["../../../../src/lib/parsers/parse-gltf.ts"],"sourcesContent":["/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport {BasisLoader, selectSupportedBasisFormat} from '@loaders.gl/textures';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport type {GLB} from '../types/glb-types';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\n\nimport {ImageLoader} from '@loaders.gl/images';\nimport {parseJSON, sliceArrayBuffer} from '@loaders.gl/loader-utils';\nimport {assert} from '../utils/assert';\nimport {resolveUrl} from '../gltf-utils/resolve-url';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1} from '../api/normalize-gltf-v1';\nimport {postProcessGLTF} from '../api/post-process-gltf';\nimport parseGLBSync, {isGLB} from './parse-glb';\n\nexport type GLTFParseOptions = {\n normalize?: boolean;\n loadImages?: boolean;\n loadBuffers?: boolean;\n decompressMeshes?: boolean;\n postProcess?: boolean;\n excludeExtensions?: string[];\n};\n\n// export type GLTFOptions = {\n// gltf?: GLTFParseOptions;\n// };\n\nexport function isGLTF(arrayBuffer, options?): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n) {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n normalizeGLTFV1(gltf, {normalize: options?.gltf?.normalize});\n\n preprocessExtensions(gltf, options, context);\n\n const promises: Promise<any>[] = [];\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context);\n }\n\n if (options?.gltf?.loadImages) {\n const promise = loadImages(gltf, options, context);\n promises.push(promise);\n }\n\n const promise = decodeExtensions(gltf, options, context);\n promises.push(promise);\n\n // Parallelize image loading and buffer loading/extension decoding\n await Promise.all(promises);\n\n // Post processing resolves indices to objects, buffers\n return options?.gltf?.postProcess ? postProcessGLTF(gltf, options) : gltf;\n}\n\n// `data` - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options) {\n // Initialize gltf container\n if (options.uri) {\n gltf.baseUri = options.uri;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer or string');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n gltf.buffers = new Array(buffers.length).fill(null);\n\n // Populates JSON and some bin chunk info\n if (gltf._glb && gltf._glb.header.hasBinChunk) {\n const {binChunks} = gltf._glb;\n gltf.buffers[0] = {\n arrayBuffer: binChunks[0].arrayBuffer,\n byteOffset: binChunks[0].byteOffset,\n byteLength: binChunks[0].byteLength\n };\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n // TODO\n const buffers = gltf.json.buffers || [];\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Make sure we only load images that are actually referenced by textures */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n const {fetch, parse} = context;\n\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options);\n const response = await fetch(uri);\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n // Call `parse`\n let parsedImage = await parse(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n {mimeType: image.mimeType, basis: options.basis || {format: selectSupportedBasisFormat()}},\n context\n );\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n gltf.images[index] = parsedImage;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-gltf.js","names":["_textures","require","_images","_loaderUtils","_assert","_resolveUrl","_getTypedArray","_gltfExtensions","_normalizeGltfV","_postProcessGltf","_parseGlb","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","isGLTF","arrayBuffer","options","byteOffset","isGLB","parseGLTF","gltf","arrayBufferOrString","_options$gltf","_options$gltf2","_options$gltf3","_options$gltf4","arguments","length","undefined","context","parseGLTFContainerSync","normalizeGLTFV1","normalize","preprocessExtensions","promises","loadBuffers","json","buffers","loadImages","promise","push","decodeExtensions","Promise","all","postProcess","postProcessGLTF","data","uri","baseUri","ArrayBuffer","textDecoder","TextDecoder","decode","parseJSON","glb","parseGLBSync","assert","type","concat","_glb","Array","fill","header","hasBinChunk","binChunks","byteLength","images","i","buffer","_context$fetch","_response$arrayBuffer","fetch","resolveUrl","response","imageIndices","getReferencesImageIndices","imageIndex","loadImage","Set","textures","texture","source","add","from","sort","image","index","parse","bufferView","Number","isFinite","array","getTypedArrayForBufferView","sliceArrayBuffer","parsedImage","ImageLoader","BasisLoader","mimeType","basis","format","selectSupportedBasisFormat","compressed","mipmaps","width","height"],"sources":["../../../../src/lib/parsers/parse-gltf.ts"],"sourcesContent":["/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/loader-utils';\nimport {BasisLoader, selectSupportedBasisFormat} from '@loaders.gl/textures';\nimport type {GLTFLoaderOptions} from '../../gltf-loader';\nimport type {GLB} from '../types/glb-types';\nimport type {GLTFWithBuffers} from '../types/gltf-types';\n\nimport {ImageLoader} from '@loaders.gl/images';\nimport {parseJSON, sliceArrayBuffer} from '@loaders.gl/loader-utils';\nimport {assert} from '../utils/assert';\nimport {resolveUrl} from '../gltf-utils/resolve-url';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {normalizeGLTFV1} from '../api/normalize-gltf-v1';\nimport {postProcessGLTF} from '../api/post-process-gltf';\nimport parseGLBSync, {isGLB} from './parse-glb';\n\nexport type GLTFParseOptions = {\n normalize?: boolean;\n loadImages?: boolean;\n loadBuffers?: boolean;\n decompressMeshes?: boolean;\n postProcess?: boolean;\n excludeExtensions?: string[];\n};\n\n// export type GLTFOptions = {\n// gltf?: GLTFParseOptions;\n// };\n\nexport function isGLTF(arrayBuffer, options?): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n) {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n normalizeGLTFV1(gltf, {normalize: options?.gltf?.normalize});\n\n preprocessExtensions(gltf, options, context);\n\n const promises: Promise<any>[] = [];\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context);\n }\n\n if (options?.gltf?.loadImages) {\n const promise = loadImages(gltf, options, context);\n promises.push(promise);\n }\n\n const promise = decodeExtensions(gltf, options, context);\n promises.push(promise);\n\n // Parallelize image loading and buffer loading/extension decoding\n await Promise.all(promises);\n\n // Post processing resolves indices to objects, buffers\n return options?.gltf?.postProcess ? postProcessGLTF(gltf, options) : gltf;\n}\n\n// `data` - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options) {\n // Initialize gltf container\n if (options.uri) {\n gltf.baseUri = options.uri;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer or string');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n gltf.buffers = new Array(buffers.length).fill(null);\n\n // Populates JSON and some bin chunk info\n if (gltf._glb && gltf._glb.header.hasBinChunk) {\n const {binChunks} = gltf._glb;\n gltf.buffers[0] = {\n arrayBuffer: binChunks[0].arrayBuffer,\n byteOffset: binChunks[0].byteOffset,\n byteLength: binChunks[0].byteLength\n };\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n // TODO\n const buffers = gltf.json.buffers || [];\n for (let i = 0; i < buffers.length; ++i) {\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Make sure we only load images that are actually referenced by textures */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n const {fetch, parse} = context;\n\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options);\n const response = await fetch(uri);\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n // Call `parse`\n let parsedImage = await parse(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n {mimeType: image.mimeType, basis: options.basis || {format: selectSupportedBasisFormat()}},\n context\n );\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n gltf.images[index] = parsedImage;\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-types.js","names":[],"sources":["../../../../src/lib/types/gltf-types.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\n// Export renamed auto generated types\nimport type {\n GLTF,\n Accessor as GLTFAccessor,\n Buffer as GLTFBuffer,\n BufferView as GLTFBufferView,\n MeshPrimitive as GLTFMeshPrimitive,\n Mesh as GLTFMesh,\n Node as GLTFNode,\n Material as GLTFMaterial,\n Sampler as GLTFSampler,\n Scene as GLTFScene,\n Skin as GLTFSkin,\n Texture as GLTFTexture,\n Image as GLTFImage,\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata\n} from './gltf-json-schema';\n\nimport type {\n GLTF as GLTFPostprocessed,\n Accessor as GLTFAccessorPostprocessed,\n Image as GLTFImagePostprocessed,\n Mesh as GLTFMeshPostprocessed,\n MeshPrimitive as GLTFMeshPrimitivePostprocessed,\n Material as GLTFMaterialPostprocessed,\n Node as GLTFNodePostprocessed,\n Texture as GLTFTexturePostprocessed\n} from './gltf-postprocessed-schema';\n\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFImagePostprocessed,\n GLTFNodePostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFTexturePostprocessed
|
|
1
|
+
{"version":3,"file":"gltf-types.js","names":[],"sources":["../../../../src/lib/types/gltf-types.ts"],"sourcesContent":["/* eslint-disable camelcase */\n\n// Export renamed auto generated types\nimport type {\n GLTF,\n Accessor as GLTFAccessor,\n Buffer as GLTFBuffer,\n BufferView as GLTFBufferView,\n MeshPrimitive as GLTFMeshPrimitive,\n Mesh as GLTFMesh,\n Node as GLTFNode,\n Material as GLTFMaterial,\n Sampler as GLTFSampler,\n Scene as GLTFScene,\n Skin as GLTFSkin,\n Texture as GLTFTexture,\n Image as GLTFImage,\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata,\n GLTF_EXT_feature_metadata_primitive,\n GLTF_EXT_feature_metadata_attribute\n} from './gltf-json-schema';\n\nimport type {\n GLTF as GLTFPostprocessed,\n Accessor as GLTFAccessorPostprocessed,\n Image as GLTFImagePostprocessed,\n Mesh as GLTFMeshPostprocessed,\n MeshPrimitive as GLTFMeshPrimitivePostprocessed,\n Material as GLTFMaterialPostprocessed,\n Node as GLTFNodePostprocessed,\n Texture as GLTFTexturePostprocessed\n} from './gltf-postprocessed-schema';\n\n// Source glTF types\nexport type {\n GLTF,\n GLTFAccessor,\n GLTFBuffer,\n GLTFBufferView,\n GLTFMeshPrimitive,\n GLTFMesh,\n GLTFNode,\n GLTFMaterial,\n GLTFSampler,\n GLTFScene,\n GLTFSkin,\n GLTFTexture,\n GLTFImage,\n GLTF_KHR_binary_glTF,\n GLTF_KHR_draco_mesh_compression,\n GLTF_KHR_texture_basisu,\n GLTF_EXT_meshopt_compression,\n GLTF_EXT_texture_webp,\n GLTF_EXT_feature_metadata,\n GLTF_EXT_feature_metadata_primitive,\n GLTF_EXT_feature_metadata_attribute\n};\n\n// Post processed glTF types\nexport type {\n GLTFPostprocessed,\n GLTFAccessorPostprocessed,\n GLTFImagePostprocessed,\n GLTFNodePostprocessed,\n GLTFMeshPostprocessed,\n GLTFMeshPrimitivePostprocessed,\n GLTFMaterialPostprocessed,\n GLTFTexturePostprocessed\n};\n\nexport type GLTFObject =\n | GLTFAccessor\n | GLTFBuffer\n | GLTFBufferView\n | GLTFMeshPrimitive\n | GLTFMesh\n | GLTFNode\n | GLTFMaterial\n | GLTFSampler\n | GLTFScene\n | GLTFSkin\n | GLTFTexture\n | GLTFImage;\n\n/** GLTFLoader removes processed extensions from `extensionsUsed` and `extensionsUsed`\n * `processedExtensions` is used to track those extensions\n */\nexport type GLTFWithBuffers = {\n json: GLTF;\n buffers: any[];\n binary?: ArrayBuffer;\n images?: any[];\n};\n"],"mappings":""}
|
|
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VERSION = void 0;
|
|
7
|
-
|
|
7
|
+
const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
|
|
8
8
|
exports.VERSION = VERSION;
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","names":["VERSION","exports"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":";;;;;;AAGO,
|
|
1
|
+
{"version":3,"file":"version.js","names":["VERSION","exports"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":";;;;;;AAGO,MAAMA,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAACC,OAAA,CAAAD,OAAA,GAAAA,OAAA"}
|