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
|
@@ -797,13 +797,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
797
797
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
798
798
|
/* harmony export */ KHR_draco_mesh_compression: () => (/* binding */ KHR_draco_mesh_compression)
|
|
799
799
|
/* harmony export */ });
|
|
800
|
-
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/
|
|
800
|
+
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! babylonjs/Buffers/buffer */ "babylonjs/Misc/observable");
|
|
801
801
|
/* harmony import */ var babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__);
|
|
802
802
|
/* harmony import */ var _glTFLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../glTFLoader */ "../../../dev/loaders/src/glTF/2.0/glTFLoader.ts");
|
|
803
803
|
|
|
804
804
|
|
|
805
805
|
|
|
806
|
-
|
|
807
806
|
var NAME = "KHR_draco_mesh_compression";
|
|
808
807
|
/**
|
|
809
808
|
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md)
|
|
@@ -818,6 +817,10 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
818
817
|
* The name of this extension.
|
|
819
818
|
*/
|
|
820
819
|
this.name = NAME;
|
|
820
|
+
/**
|
|
821
|
+
* Defines whether to use the normalized flag from the glTF accessor instead of the Draco data. Defaults to true.
|
|
822
|
+
*/
|
|
823
|
+
this.useNormalizedFlagFromAccessor = true;
|
|
821
824
|
this._loader = loader;
|
|
822
825
|
this.enabled = babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.DracoCompression.DecoderAvailable && this._loader.isExtensionUsed(NAME);
|
|
823
826
|
}
|
|
@@ -842,36 +845,23 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
842
845
|
}
|
|
843
846
|
}
|
|
844
847
|
var attributes = {};
|
|
845
|
-
var
|
|
848
|
+
var normalized = {};
|
|
846
849
|
var loadAttribute = function (name, kind) {
|
|
847
850
|
var uniqueId = extension.attributes[name];
|
|
848
|
-
if (uniqueId
|
|
851
|
+
if (uniqueId == undefined) {
|
|
849
852
|
return;
|
|
850
853
|
}
|
|
851
|
-
attributes[kind] = uniqueId;
|
|
852
|
-
var accessor = _glTFLoader__WEBPACK_IMPORTED_MODULE_1__.ArrayItem.Get("".concat(context, "/attributes/").concat(name), _this._loader.gltf.accessors, primitive.attributes[name]);
|
|
853
|
-
if (accessor.normalized && accessor.componentType !== 5126 /* AccessorComponentType.FLOAT */) {
|
|
854
|
-
var divider = 1;
|
|
855
|
-
switch (accessor.componentType) {
|
|
856
|
-
case 5120 /* AccessorComponentType.BYTE */:
|
|
857
|
-
divider = 127.0;
|
|
858
|
-
break;
|
|
859
|
-
case 5121 /* AccessorComponentType.UNSIGNED_BYTE */:
|
|
860
|
-
divider = 255.0;
|
|
861
|
-
break;
|
|
862
|
-
case 5122 /* AccessorComponentType.SHORT */:
|
|
863
|
-
divider = 32767.0;
|
|
864
|
-
break;
|
|
865
|
-
case 5123 /* AccessorComponentType.UNSIGNED_SHORT */:
|
|
866
|
-
divider = 65535.0;
|
|
867
|
-
break;
|
|
868
|
-
}
|
|
869
|
-
dividers[kind] = divider;
|
|
870
|
-
}
|
|
871
854
|
babylonMesh._delayInfo = babylonMesh._delayInfo || [];
|
|
872
855
|
if (babylonMesh._delayInfo.indexOf(kind) === -1) {
|
|
873
856
|
babylonMesh._delayInfo.push(kind);
|
|
874
857
|
}
|
|
858
|
+
attributes[kind] = uniqueId;
|
|
859
|
+
if (_this.useNormalizedFlagFromAccessor) {
|
|
860
|
+
var accessor = _glTFLoader__WEBPACK_IMPORTED_MODULE_1__.ArrayItem.TryGet(_this._loader.gltf.accessors, primitive.attributes[name]);
|
|
861
|
+
if (accessor) {
|
|
862
|
+
normalized[kind] = accessor.normalized || false;
|
|
863
|
+
}
|
|
864
|
+
}
|
|
875
865
|
};
|
|
876
866
|
loadAttribute("POSITION", babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.PositionKind);
|
|
877
867
|
loadAttribute("NORMAL", babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.NormalKind);
|
|
@@ -889,14 +879,7 @@ var KHR_draco_mesh_compression = /** @class */ (function () {
|
|
|
889
879
|
if (!bufferView._dracoBabylonGeometry) {
|
|
890
880
|
bufferView._dracoBabylonGeometry = _this._loader.loadBufferViewAsync("/bufferViews/".concat(bufferView.index), bufferView).then(function (data) {
|
|
891
881
|
var dracoCompression = _this.dracoCompression || babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.DracoCompression.Default;
|
|
892
|
-
return dracoCompression
|
|
893
|
-
.decodeMeshAsync(data, attributes, dividers)
|
|
894
|
-
.then(function (babylonVertexData) {
|
|
895
|
-
var babylonGeometry = new babylonjs_Meshes_Compression_dracoCompression__WEBPACK_IMPORTED_MODULE_0__.Geometry(babylonMesh.name, _this._loader.babylonScene);
|
|
896
|
-
babylonVertexData.applyToGeometry(babylonGeometry);
|
|
897
|
-
return babylonGeometry;
|
|
898
|
-
})
|
|
899
|
-
.catch(function (error) {
|
|
882
|
+
return dracoCompression._decodeMeshToGeometryForGltfAsync(babylonMesh.name, _this._loader.babylonScene, data, attributes, normalized).catch(function (error) {
|
|
900
883
|
throw new Error("".concat(context, ": ").concat(error.message));
|
|
901
884
|
});
|
|
902
885
|
});
|
|
@@ -3716,6 +3699,18 @@ var ArrayItem = /** @class */ (function () {
|
|
|
3716
3699
|
}
|
|
3717
3700
|
return array[index];
|
|
3718
3701
|
};
|
|
3702
|
+
/**
|
|
3703
|
+
* Gets an item from the given array or returns null if not available.
|
|
3704
|
+
* @param array The array to get the item from
|
|
3705
|
+
* @param index The index to the array
|
|
3706
|
+
* @returns The array item or null
|
|
3707
|
+
*/
|
|
3708
|
+
ArrayItem.TryGet = function (array, index) {
|
|
3709
|
+
if (!array || index == undefined || !array[index]) {
|
|
3710
|
+
return null;
|
|
3711
|
+
}
|
|
3712
|
+
return array[index];
|
|
3713
|
+
};
|
|
3719
3714
|
/**
|
|
3720
3715
|
* Assign an `index` field to each item of the given array.
|
|
3721
3716
|
* @param array The array of items
|
|
@@ -4486,15 +4481,15 @@ var GLTFLoader = /** @class */ (function () {
|
|
|
4486
4481
|
babylonGeometry.setIndices(data);
|
|
4487
4482
|
}));
|
|
4488
4483
|
}
|
|
4489
|
-
var loadAttribute = function (
|
|
4490
|
-
if (attributes[
|
|
4484
|
+
var loadAttribute = function (name, kind, callback) {
|
|
4485
|
+
if (attributes[name] == undefined) {
|
|
4491
4486
|
return;
|
|
4492
4487
|
}
|
|
4493
4488
|
babylonMesh._delayInfo = babylonMesh._delayInfo || [];
|
|
4494
4489
|
if (babylonMesh._delayInfo.indexOf(kind) === -1) {
|
|
4495
4490
|
babylonMesh._delayInfo.push(kind);
|
|
4496
4491
|
}
|
|
4497
|
-
var accessor = ArrayItem.Get("".concat(context, "/attributes/").concat(
|
|
4492
|
+
var accessor = ArrayItem.Get("".concat(context, "/attributes/").concat(name), _this._gltf.accessors, attributes[name]);
|
|
4498
4493
|
promises.push(_this._loadVertexAccessorAsync("/accessors/".concat(accessor.index), accessor, kind).then(function (babylonVertexBuffer) {
|
|
4499
4494
|
var _a, _b;
|
|
4500
4495
|
if (babylonVertexBuffer.getKind() === babylonjs_Misc_deferred__WEBPACK_IMPORTED_MODULE_0__.VertexBuffer.PositionKind && !_this.parent.alwaysComputeBoundingBox && !babylonMesh.skeleton) {
|