@babylonjs/loaders 5.0.0-rc.1 → 5.0.0-rc.4
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/glTF/2.0/glTFLoader.js +27 -12
- package/glTF/2.0/glTFLoader.js.map +1 -1
- package/glTF/2.0/glTFLoaderInterfaces.d.ts +2 -0
- package/glTF/2.0/glTFLoaderInterfaces.js.map +1 -1
- package/glTF/glTFFileLoader.d.ts +8 -0
- package/glTF/glTFFileLoader.js +8 -0
- package/glTF/glTFFileLoader.js.map +1 -1
- package/glTF/glTFValidation.js +2 -0
- package/glTF/glTFValidation.js.map +1 -1
- package/package.json +3 -3
package/glTF/2.0/glTFLoader.js
CHANGED
@@ -249,14 +249,16 @@ var GLTFLoader = /** @class */ (function () {
|
|
249
249
|
// Block the marking of materials dirty until the scene is loaded.
|
250
250
|
var oldBlockMaterialDirtyMechanism = _this._babylonScene.blockMaterialDirtyMechanism;
|
251
251
|
_this._babylonScene.blockMaterialDirtyMechanism = true;
|
252
|
-
if (
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
252
|
+
if (!_this.parent.loadOnlyMaterials) {
|
253
|
+
if (nodes) {
|
254
|
+
promises.push(_this.loadSceneAsync("/nodes", { nodes: nodes, index: -1 }));
|
255
|
+
}
|
256
|
+
else if (_this._gltf.scene != undefined || (_this._gltf.scenes && _this._gltf.scenes[0])) {
|
257
|
+
var scene = ArrayItem.Get("/scene", _this._gltf.scenes, _this._gltf.scene || 0);
|
258
|
+
promises.push(_this.loadSceneAsync("/scenes/".concat(scene.index), scene));
|
259
|
+
}
|
258
260
|
}
|
259
|
-
if (_this.parent.loadAllMaterials && _this._gltf.materials) {
|
261
|
+
if (!_this.parent.skipMaterials && _this.parent.loadAllMaterials && _this._gltf.materials) {
|
260
262
|
for (var m = 0; m < _this._gltf.materials.length; ++m) {
|
261
263
|
var material = _this._gltf.materials[m];
|
262
264
|
var context_1 = "/materials/" + m;
|
@@ -497,6 +499,9 @@ var GLTFLoader = /** @class */ (function () {
|
|
497
499
|
if (node._babylonTransformNode && node._babylonTransformNode.getClassName() === "TransformNode") {
|
498
500
|
transformNodes.push(node._babylonTransformNode);
|
499
501
|
}
|
502
|
+
if (node._babylonTransformNodeForSkin) {
|
503
|
+
transformNodes.push(node._babylonTransformNodeForSkin);
|
504
|
+
}
|
500
505
|
}
|
501
506
|
}
|
502
507
|
return transformNodes;
|
@@ -596,10 +601,16 @@ var GLTFLoader = /** @class */ (function () {
|
|
596
601
|
if (node.mesh == undefined || node.skin != undefined) {
|
597
602
|
var nodeName = node.name || "node".concat(node.index);
|
598
603
|
this._babylonScene._blockEntityCollection = !!this._assetContainer;
|
599
|
-
|
600
|
-
|
604
|
+
var transformNode = new TransformNode(nodeName, this._babylonScene);
|
605
|
+
transformNode._parentContainer = this._assetContainer;
|
601
606
|
this._babylonScene._blockEntityCollection = false;
|
602
|
-
|
607
|
+
if (node.mesh == undefined) {
|
608
|
+
node._babylonTransformNode = transformNode;
|
609
|
+
}
|
610
|
+
else {
|
611
|
+
node._babylonTransformNodeForSkin = transformNode;
|
612
|
+
}
|
613
|
+
loadNode(transformNode);
|
603
614
|
}
|
604
615
|
if (node.mesh != undefined) {
|
605
616
|
if (node.skin == undefined) {
|
@@ -612,7 +623,8 @@ var GLTFLoader = /** @class */ (function () {
|
|
612
623
|
// transform, which effectively ignores the transform of the skinned mesh, as per spec.
|
613
624
|
var mesh = ArrayItem.Get("".concat(context, "/mesh"), this._gltf.meshes, node.mesh);
|
614
625
|
promises.push(this._loadMeshAsync("/meshes/".concat(mesh.index), node, mesh, function (babylonTransformNode) {
|
615
|
-
|
626
|
+
// Duplicate the metadata from the skin node to the skinned mesh in case any loader extension added metadata.
|
627
|
+
babylonTransformNode.metadata = node._babylonTransformNodeForSkin.metadata;
|
616
628
|
var skin = ArrayItem.Get("".concat(context, "/skin"), _this._gltf.skins, node.skin);
|
617
629
|
promises.push(_this._loadSkinAsync("/skins/".concat(skin.index), node, skin, function (babylonSkeleton) {
|
618
630
|
_this._forEachPrimitive(node, function (babylonMesh) {
|
@@ -738,7 +750,7 @@ var GLTFLoader = /** @class */ (function () {
|
|
738
750
|
}
|
739
751
|
babylonMesh_1.material = babylonMaterial;
|
740
752
|
}
|
741
|
-
else {
|
753
|
+
else if (!this.parent.skipMaterials) {
|
742
754
|
var material = ArrayItem.Get("".concat(context, "/material"), this._gltf.materials, primitive.material);
|
743
755
|
promises.push(this._loadMaterialAsync("/materials/".concat(material.index), material, babylonMesh_1, babylonDrawMode, function (babylonMaterial) {
|
744
756
|
babylonMesh_1.material = babylonMaterial;
|
@@ -1023,6 +1035,9 @@ var GLTFLoader = /** @class */ (function () {
|
|
1023
1035
|
}
|
1024
1036
|
};
|
1025
1037
|
GLTFLoader.prototype._findSkeletonRootNode = function (context, joints) {
|
1038
|
+
if (joints.length === 0) {
|
1039
|
+
return null;
|
1040
|
+
}
|
1026
1041
|
var paths = {};
|
1027
1042
|
for (var _i = 0, joints_1 = joints; _i < joints_1.length; _i++) {
|
1028
1043
|
var index = joints_1[_i];
|