babylonjs-loaders 6.21.0 → 6.21.2
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/babylon.glTF2FileLoader.js +30 -35
- package/babylon.glTF2FileLoader.js.map +1 -1
- package/babylon.glTF2FileLoader.min.js +1 -1
- package/babylon.glTF2FileLoader.min.js.map +1 -1
- package/babylon.glTFFileLoader.js +30 -35
- package/babylon.glTFFileLoader.js.map +1 -1
- package/babylon.glTFFileLoader.min.js +1 -1
- package/babylon.glTFFileLoader.min.js.map +1 -1
- package/babylon.stlFileLoader.js +1 -6
- package/babylon.stlFileLoader.js.map +1 -1
- package/babylon.stlFileLoader.min.js +1 -1
- package/babylon.stlFileLoader.min.js.map +1 -1
- package/babylonjs.loaders.d.ts +11 -0
- package/babylonjs.loaders.js +31 -41
- package/babylonjs.loaders.js.map +1 -1
- package/babylonjs.loaders.min.js +1 -1
- package/babylonjs.loaders.min.js.map +1 -1
- package/babylonjs.loaders.module.d.ts +22 -0
- package/package.json +3 -3
|
@@ -3284,13 +3284,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
3284
3284
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
3285
3285
|
/* harmony export */ KHR_draco_mesh_compression: () => (/* binding */ KHR_draco_mesh_compression)
|
|
3286
3286
|
/* harmony export */ });
|
|
3287
|
-
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/
|
|
3287
|
+
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Buffers/buffer */ "babylonjs/Misc/observable");
|
|
3288
3288
|
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__);
|
|
3289
3289
|
/* harmony import */ var _glTFLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../glTFLoader */ "../../../dev/loaders/src/glTF/2.0/glTFLoader.ts");
|
|
3290
3290
|
|
|
3291
3291
|
|
|
3292
3292
|
|
|
3293
|
-
|
|
3294
3293
|
var NAME = "KHR_draco_mesh_compression";
|
|
3295
3294
|
/**
|
|
3296
3295
|
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md)
|
|
@@ -3305,6 +3304,10 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
3305
3304
|
* The name of this extension.
|
|
3306
3305
|
*/
|
|
3307
3306
|
this.name = NAME;
|
|
3307
|
+
/**
|
|
3308
|
+
* Defines whether to use the normalized flag from the glTF accessor instead of the Draco data. Defaults to true.
|
|
3309
|
+
*/
|
|
3310
|
+
this.useNormalizedFlagFromAccessor = true;
|
|
3308
3311
|
this._loader = loader;
|
|
3309
3312
|
this.enabled = babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.DracoCompression.DecoderAvailable && this._loader.isExtensionUsed(NAME);
|
|
3310
3313
|
}
|
|
@@ -3329,36 +3332,23 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
3329
3332
|
}
|
|
3330
3333
|
}
|
|
3331
3334
|
var attributes = {};
|
|
3332
|
-
var
|
|
3335
|
+
var normalized = {};
|
|
3333
3336
|
var loadAttribute = function (name, kind) {
|
|
3334
3337
|
var uniqueId = extension.attributes[name];
|
|
3335
|
-
if (uniqueId
|
|
3338
|
+
if (uniqueId == undefined) {
|
|
3336
3339
|
return;
|
|
3337
3340
|
}
|
|
3338
|
-
attributes[kind] = uniqueId;
|
|
3339
|
-
var accessor = _glTFLoader__WEBPACK_IMPORTED_MODULE_1__.ArrayItem.Get("".concat(context, "/attributes/").concat(name), _this._loader.gltf.accessors, primitive.attributes[name]);
|
|
3340
|
-
if (accessor.normalized && accessor.componentType !== 5126 /* AccessorComponentType.FLOAT */) {
|
|
3341
|
-
var divider = 1;
|
|
3342
|
-
switch (accessor.componentType) {
|
|
3343
|
-
case 5120 /* AccessorComponentType.BYTE */:
|
|
3344
|
-
divider = 127.0;
|
|
3345
|
-
break;
|
|
3346
|
-
case 5121 /* AccessorComponentType.UNSIGNED_BYTE */:
|
|
3347
|
-
divider = 255.0;
|
|
3348
|
-
break;
|
|
3349
|
-
case 5122 /* AccessorComponentType.SHORT */:
|
|
3350
|
-
divider = 32767.0;
|
|
3351
|
-
break;
|
|
3352
|
-
case 5123 /* AccessorComponentType.UNSIGNED_SHORT */:
|
|
3353
|
-
divider = 65535.0;
|
|
3354
|
-
break;
|
|
3355
|
-
}
|
|
3356
|
-
dividers[kind] = divider;
|
|
3357
|
-
}
|
|
3358
3341
|
babylonMesh._delayInfo = babylonMesh._delayInfo || [];
|
|
3359
3342
|
if (babylonMesh._delayInfo.indexOf(kind) === -1) {
|
|
3360
3343
|
babylonMesh._delayInfo.push(kind);
|
|
3361
3344
|
}
|
|
3345
|
+
attributes[kind] = uniqueId;
|
|
3346
|
+
if (_this.useNormalizedFlagFromAccessor) {
|
|
3347
|
+
var accessor = _glTFLoader__WEBPACK_IMPORTED_MODULE_1__.ArrayItem.TryGet(_this._loader.gltf.accessors, primitive.attributes[name]);
|
|
3348
|
+
if (accessor) {
|
|
3349
|
+
normalized[kind] = accessor.normalized || false;
|
|
3350
|
+
}
|
|
3351
|
+
}
|
|
3362
3352
|
};
|
|
3363
3353
|
loadAttribute("POSITION", babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.PositionKind);
|
|
3364
3354
|
loadAttribute("NORMAL", babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.NormalKind);
|
|
@@ -3376,14 +3366,7 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
3376
3366
|
if (!bufferView._dracoBabylonGeometry) {
|
|
3377
3367
|
bufferView._dracoBabylonGeometry = _this._loader.loadBufferViewAsync("/bufferViews/".concat(bufferView.index), bufferView).then(function (data) {
|
|
3378
3368
|
var dracoCompression = _this.dracoCompression || babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.DracoCompression.Default;
|
|
3379
|
-
return dracoCompression
|
|
3380
|
-
.decodeMeshAsync(data, attributes, dividers)
|
|
3381
|
-
.then(function (babylonVertexData) {
|
|
3382
|
-
var babylonGeometry = new babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.Geometry(babylonMesh.name, _this._loader.babylonScene);
|
|
3383
|
-
babylonVertexData.applyToGeometry(babylonGeometry);
|
|
3384
|
-
return babylonGeometry;
|
|
3385
|
-
})
|
|
3386
|
-
.catch(function (error) {
|
|
3369
|
+
return dracoCompression._decodeMeshToGeometryForGltfAsync(babylonMesh.name, _this._loader.babylonScene, data, attributes, normalized).catch(function (error) {
|
|
3387
3370
|
throw new Error("".concat(context, ": ").concat(error.message));
|
|
3388
3371
|
});
|
|
3389
3372
|
});
|
|
@@ -6203,6 +6186,18 @@ var ArrayItem = /** @class */ (function () {
|
|
|
6203
6186
|
}
|
|
6204
6187
|
return array[index];
|
|
6205
6188
|
};
|
|
6189
|
+
/**
|
|
6190
|
+
* Gets an item from the given array or returns null if not available.
|
|
6191
|
+
* @param array The array to get the item from
|
|
6192
|
+
* @param index The index to the array
|
|
6193
|
+
* @returns The array item or null
|
|
6194
|
+
*/
|
|
6195
|
+
ArrayItem.TryGet = function (array, index) {
|
|
6196
|
+
if (!array || index == undefined || !array[index]) {
|
|
6197
|
+
return null;
|
|
6198
|
+
}
|
|
6199
|
+
return array[index];
|
|
6200
|
+
};
|
|
6206
6201
|
/**
|
|
6207
6202
|
* Assign an `index` field to each item of the given array.
|
|
6208
6203
|
* @param array The array of items
|
|
@@ -6973,15 +6968,15 @@ var GLTFLoader = /** @class */ (function () {
|
|
|
6973
6968
|
babylonGeometry.setIndices(data);
|
|
6974
6969
|
}));
|
|
6975
6970
|
}
|
|
6976
|
-
var loadAttribute = function (
|
|
6977
|
-
if (attributes[
|
|
6971
|
+
var loadAttribute = function (name, kind, callback) {
|
|
6972
|
+
if (attributes[name] == undefined) {
|
|
6978
6973
|
return;
|
|
6979
6974
|
}
|
|
6980
6975
|
babylonMesh._delayInfo = babylonMesh._delayInfo || [];
|
|
6981
6976
|
if (babylonMesh._delayInfo.indexOf(kind) === -1) {
|
|
6982
6977
|
babylonMesh._delayInfo.push(kind);
|
|
6983
6978
|
}
|
|
6984
|
-
var accessor = ArrayItem.Get("".concat(context, "/attributes/").concat(
|
|
6979
|
+
var accessor = ArrayItem.Get("".concat(context, "/attributes/").concat(name), _this._gltf.accessors, attributes[name]);
|
|
6985
6980
|
promises.push(_this._loadVertexAccessorAsync("/accessors/".concat(accessor.index), accessor, kind).then(function (babylonVertexBuffer) {
|
|
6986
6981
|
var _a, _b;
|
|
6987
6982
|
if (babylonVertexBuffer.getKind() === babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.PositionKind && !_this.parent.alwaysComputeBoundingBox && !babylonMesh.skeleton) {
|