@babylonjs/loaders 5.0.0-beta.1 → 5.0.0-beta.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/OBJ/objFileLoader.js +2 -2
  2. package/OBJ/objFileLoader.js.map +1 -1
  3. package/glTF/2.0/Extensions/EXT_lights_image_based.js +8 -8
  4. package/glTF/2.0/Extensions/EXT_lights_image_based.js.map +1 -1
  5. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +4 -4
  6. package/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js.map +1 -1
  7. package/glTF/2.0/Extensions/EXT_meshopt_compression.js +2 -2
  8. package/glTF/2.0/Extensions/EXT_meshopt_compression.js.map +1 -1
  9. package/glTF/2.0/Extensions/EXT_texture_webp.js +2 -2
  10. package/glTF/2.0/Extensions/EXT_texture_webp.js.map +1 -1
  11. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +27 -7
  12. package/glTF/2.0/Extensions/KHR_draco_mesh_compression.js.map +1 -1
  13. package/glTF/2.0/Extensions/KHR_lights_punctual.js +1 -1
  14. package/glTF/2.0/Extensions/KHR_lights_punctual.js.map +1 -1
  15. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js +7 -7
  16. package/glTF/2.0/Extensions/KHR_materials_clearcoat.js.map +1 -1
  17. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +1 -1
  18. package/glTF/2.0/Extensions/KHR_materials_emissive_strength.js.map +1 -1
  19. package/glTF/2.0/Extensions/KHR_materials_ior.js +1 -1
  20. package/glTF/2.0/Extensions/KHR_materials_ior.js.map +1 -1
  21. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +5 -5
  22. package/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js.map +1 -1
  23. package/glTF/2.0/Extensions/KHR_materials_sheen.js +5 -5
  24. package/glTF/2.0/Extensions/KHR_materials_sheen.js.map +1 -1
  25. package/glTF/2.0/Extensions/KHR_materials_specular.js +5 -5
  26. package/glTF/2.0/Extensions/KHR_materials_specular.js.map +1 -1
  27. package/glTF/2.0/Extensions/KHR_materials_translucency.js +2 -2
  28. package/glTF/2.0/Extensions/KHR_materials_translucency.js.map +1 -1
  29. package/glTF/2.0/Extensions/KHR_materials_transmission.js +2 -2
  30. package/glTF/2.0/Extensions/KHR_materials_transmission.js.map +1 -1
  31. package/glTF/2.0/Extensions/KHR_materials_unlit.js +3 -3
  32. package/glTF/2.0/Extensions/KHR_materials_unlit.js.map +1 -1
  33. package/glTF/2.0/Extensions/KHR_materials_variants.js +6 -6
  34. package/glTF/2.0/Extensions/KHR_materials_variants.js.map +1 -1
  35. package/glTF/2.0/Extensions/KHR_materials_volume.js +2 -2
  36. package/glTF/2.0/Extensions/KHR_materials_volume.js.map +1 -1
  37. package/glTF/2.0/Extensions/KHR_texture_basisu.js +2 -2
  38. package/glTF/2.0/Extensions/KHR_texture_basisu.js.map +1 -1
  39. package/glTF/2.0/Extensions/KHR_texture_transform.js +1 -1
  40. package/glTF/2.0/Extensions/KHR_texture_transform.js.map +1 -1
  41. package/glTF/2.0/Extensions/MSFT_audio_emitter.js +13 -13
  42. package/glTF/2.0/Extensions/MSFT_audio_emitter.js.map +1 -1
  43. package/glTF/2.0/Extensions/MSFT_lod.d.ts +0 -1
  44. package/glTF/2.0/Extensions/MSFT_lod.js +17 -54
  45. package/glTF/2.0/Extensions/MSFT_lod.js.map +1 -1
  46. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js +1 -1
  47. package/glTF/2.0/Extensions/MSFT_minecraftMesh.js.map +1 -1
  48. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js +1 -1
  49. package/glTF/2.0/Extensions/MSFT_sRGBFactors.js.map +1 -1
  50. package/glTF/2.0/glTFLoader.js +141 -141
  51. package/glTF/2.0/glTFLoader.js.map +1 -1
  52. package/glTF/glTFFileLoader.js +13 -13
  53. package/glTF/glTFFileLoader.js.map +1 -1
  54. package/glTF/glTFValidation.js +1 -1
  55. package/glTF/glTFValidation.js.map +1 -1
  56. package/package.json +3 -3
@@ -39,7 +39,7 @@ var ArrayItem = /** @class */ (function () {
39
39
  */
40
40
  ArrayItem.Get = function (context, array, index) {
41
41
  if (!array || index == undefined || !array[index]) {
42
- throw new Error(context + ": Failed to find index (" + index + ")");
42
+ throw new Error("".concat(context, ": Failed to find index (").concat(index, ")"));
43
43
  }
44
44
  return array[index];
45
45
  };
@@ -84,7 +84,7 @@ var GLTFLoader = /** @class */ (function () {
84
84
  */
85
85
  GLTFLoader.RegisterExtension = function (name, factory) {
86
86
  if (GLTFLoader.UnregisterExtension(name)) {
87
- Logger.Warn("Extension with the name '" + name + "' already exists");
87
+ Logger.Warn("Extension with the name '".concat(name, "' already exists"));
88
88
  }
89
89
  GLTFLoader._RegisteredExtensions[name] = {
90
90
  factory: factory
@@ -192,7 +192,7 @@ var GLTFLoader = /** @class */ (function () {
192
192
  nodes = names.map(function (name) {
193
193
  var node = nodeMap_1[name];
194
194
  if (node === undefined) {
195
- throw new Error("Failed to find node '" + name + "'");
195
+ throw new Error("Failed to find node '".concat(name, "'"));
196
196
  }
197
197
  return node;
198
198
  });
@@ -224,12 +224,12 @@ var GLTFLoader = /** @class */ (function () {
224
224
  var _this = this;
225
225
  return Promise.resolve().then(function () {
226
226
  _this._rootUrl = rootUrl;
227
- _this._uniqueRootUrl = (!StringTools.StartsWith(rootUrl, "file:") && fileName) ? rootUrl : "" + rootUrl + Date.now() + "/";
227
+ _this._uniqueRootUrl = (!StringTools.StartsWith(rootUrl, "file:") && fileName) ? rootUrl : "".concat(rootUrl).concat(Date.now(), "/");
228
228
  _this._fileName = fileName;
229
229
  _this._loadExtensions();
230
230
  _this._checkExtensions();
231
- var loadingToReadyCounterName = GLTFLoaderState[GLTFLoaderState.LOADING] + " => " + GLTFLoaderState[GLTFLoaderState.READY];
232
- var loadingToCompleteCounterName = GLTFLoaderState[GLTFLoaderState.LOADING] + " => " + GLTFLoaderState[GLTFLoaderState.COMPLETE];
231
+ var loadingToReadyCounterName = "".concat(GLTFLoaderState[GLTFLoaderState.LOADING], " => ").concat(GLTFLoaderState[GLTFLoaderState.READY]);
232
+ var loadingToCompleteCounterName = "".concat(GLTFLoaderState[GLTFLoaderState.LOADING], " => ").concat(GLTFLoaderState[GLTFLoaderState.COMPLETE]);
233
233
  _this._parent._startPerformanceCounter(loadingToReadyCounterName);
234
234
  _this._parent._startPerformanceCounter(loadingToCompleteCounterName);
235
235
  _this._parent._setState(GLTFLoaderState.LOADING);
@@ -243,7 +243,7 @@ var GLTFLoader = /** @class */ (function () {
243
243
  }
244
244
  else if (_this._gltf.scene != undefined || (_this._gltf.scenes && _this._gltf.scenes[0])) {
245
245
  var scene = ArrayItem.Get("/scene", _this._gltf.scenes, _this._gltf.scene || 0);
246
- promises.push(_this.loadSceneAsync("/scenes/" + scene.index, scene));
246
+ promises.push(_this.loadSceneAsync("/scenes/".concat(scene.index), scene));
247
247
  }
248
248
  if (_this.parent.loadAllMaterials && _this._gltf.materials) {
249
249
  for (var m = 0; m < _this._gltf.materials.length; ++m) {
@@ -306,7 +306,7 @@ var GLTFLoader = /** @class */ (function () {
306
306
  if (buffers && buffers[0] && !buffers[0].uri) {
307
307
  var binaryBuffer = buffers[0];
308
308
  if (binaryBuffer.byteLength < data.bin.byteLength - 3 || binaryBuffer.byteLength > data.bin.byteLength) {
309
- Logger.Warn("Binary buffer length (" + binaryBuffer.byteLength + ") from JSON does not match chunk length (" + data.bin.byteLength + ")");
309
+ Logger.Warn("Binary buffer length (".concat(binaryBuffer.byteLength, ") from JSON does not match chunk length (").concat(data.bin.byteLength, ")"));
310
310
  }
311
311
  this._bin = data.bin;
312
312
  }
@@ -352,7 +352,7 @@ var GLTFLoader = /** @class */ (function () {
352
352
  for (var name_2 in GLTFLoader._RegisteredExtensions) {
353
353
  var extension = GLTFLoader._RegisteredExtensions[name_2].factory(this);
354
354
  if (extension.name !== name_2) {
355
- Logger.Warn("The name of the glTF loader extension instance does not match the registered name: " + extension.name + " !== " + name_2);
355
+ Logger.Warn("The name of the glTF loader extension instance does not match the registered name: ".concat(extension.name, " !== ").concat(name_2));
356
356
  }
357
357
  this._extensions.push(extension);
358
358
  this._parent.onExtensionLoadedObservable.notifyObservers(extension);
@@ -365,7 +365,7 @@ var GLTFLoader = /** @class */ (function () {
365
365
  var _loop_1 = function (name_3) {
366
366
  var available = this_1._extensions.some(function (extension) { return extension.name === name_3 && extension.enabled; });
367
367
  if (!available) {
368
- throw new Error("Require extension " + name_3 + " is not available");
368
+ throw new Error("Require extension ".concat(name_3, " is not available"));
369
369
  }
370
370
  };
371
371
  var this_1 = this;
@@ -399,7 +399,7 @@ var GLTFLoader = /** @class */ (function () {
399
399
  break;
400
400
  }
401
401
  default: {
402
- throw new Error("Invalid coordinate system mode (" + this._parent.coordinateSystemMode + ")");
402
+ throw new Error("Invalid coordinate system mode (".concat(this._parent.coordinateSystemMode, ")"));
403
403
  }
404
404
  }
405
405
  this._parent.onMeshLoadedObservable.notifyObservers(this._rootBabylonMesh);
@@ -418,12 +418,12 @@ var GLTFLoader = /** @class */ (function () {
418
418
  return extensionPromise;
419
419
  }
420
420
  var promises = new Array();
421
- this.logOpen(context + " " + (scene.name || ""));
421
+ this.logOpen("".concat(context, " ").concat(scene.name || ""));
422
422
  if (scene.nodes) {
423
423
  for (var _i = 0, _a = scene.nodes; _i < _a.length; _i++) {
424
424
  var index = _a[_i];
425
- var node = ArrayItem.Get(context + "/nodes/" + index, this._gltf.nodes, index);
426
- promises.push(this.loadNodeAsync("/nodes/" + node.index, node, function (babylonMesh) {
425
+ var node = ArrayItem.Get("".concat(context, "/nodes/").concat(index), this._gltf.nodes, index);
426
+ promises.push(this.loadNodeAsync("/nodes/".concat(node.index), node, function (babylonMesh) {
427
427
  babylonMesh.parent = _this._rootBabylonMesh;
428
428
  }));
429
429
  }
@@ -547,7 +547,7 @@ var GLTFLoader = /** @class */ (function () {
547
547
  break;
548
548
  }
549
549
  default: {
550
- Logger.Error("Invalid animation start mode (" + this._parent.animationStartMode + ")");
550
+ Logger.Error("Invalid animation start mode (".concat(this._parent.animationStartMode, ")"));
551
551
  return;
552
552
  }
553
553
  }
@@ -567,24 +567,24 @@ var GLTFLoader = /** @class */ (function () {
567
567
  return extensionPromise;
568
568
  }
569
569
  if (node._babylonTransformNode) {
570
- throw new Error(context + ": Invalid recursive node hierarchy");
570
+ throw new Error("".concat(context, ": Invalid recursive node hierarchy"));
571
571
  }
572
572
  var promises = new Array();
573
- this.logOpen(context + " " + (node.name || ""));
573
+ this.logOpen("".concat(context, " ").concat(node.name || ""));
574
574
  var loadNode = function (babylonTransformNode) {
575
575
  GLTFLoader.AddPointerMetadata(babylonTransformNode, context);
576
576
  GLTFLoader._LoadTransform(node, babylonTransformNode);
577
577
  if (node.camera != undefined) {
578
- var camera = ArrayItem.Get(context + "/camera", _this._gltf.cameras, node.camera);
579
- promises.push(_this.loadCameraAsync("/cameras/" + camera.index, camera, function (babylonCamera) {
578
+ var camera = ArrayItem.Get("".concat(context, "/camera"), _this._gltf.cameras, node.camera);
579
+ promises.push(_this.loadCameraAsync("/cameras/".concat(camera.index), camera, function (babylonCamera) {
580
580
  babylonCamera.parent = babylonTransformNode;
581
581
  }));
582
582
  }
583
583
  if (node.children) {
584
584
  for (var _i = 0, _a = node.children; _i < _a.length; _i++) {
585
585
  var index = _a[_i];
586
- var childNode = ArrayItem.Get(context + "/children/" + index, _this._gltf.nodes, index);
587
- promises.push(_this.loadNodeAsync("/nodes/" + childNode.index, childNode, function (childBabylonMesh) {
586
+ var childNode = ArrayItem.Get("".concat(context, "/children/").concat(index), _this._gltf.nodes, index);
587
+ promises.push(_this.loadNodeAsync("/nodes/".concat(childNode.index), childNode, function (childBabylonMesh) {
588
588
  childBabylonMesh.parent = babylonTransformNode;
589
589
  }));
590
590
  }
@@ -592,7 +592,7 @@ var GLTFLoader = /** @class */ (function () {
592
592
  assign(babylonTransformNode);
593
593
  };
594
594
  if (node.mesh == undefined) {
595
- var nodeName = node.name || "node" + node.index;
595
+ var nodeName = node.name || "node".concat(node.index);
596
596
  this._babylonScene._blockEntityCollection = !!this._assetContainer;
597
597
  node._babylonTransformNode = new TransformNode(nodeName, this._babylonScene);
598
598
  node._babylonTransformNode._parentContainer = this._assetContainer;
@@ -600,8 +600,8 @@ var GLTFLoader = /** @class */ (function () {
600
600
  loadNode(node._babylonTransformNode);
601
601
  }
602
602
  else {
603
- var mesh = ArrayItem.Get(context + "/mesh", this._gltf.meshes, node.mesh);
604
- promises.push(this._loadMeshAsync("/meshes/" + mesh.index, node, mesh, loadNode));
603
+ var mesh = ArrayItem.Get("".concat(context, "/mesh"), this._gltf.meshes, node.mesh);
604
+ promises.push(this._loadMeshAsync("/meshes/".concat(mesh.index), node, mesh, loadNode));
605
605
  }
606
606
  this.logClose();
607
607
  return Promise.all(promises).then(function () {
@@ -620,17 +620,17 @@ var GLTFLoader = /** @class */ (function () {
620
620
  GLTFLoader.prototype._loadMeshAsync = function (context, node, mesh, assign) {
621
621
  var primitives = mesh.primitives;
622
622
  if (!primitives || !primitives.length) {
623
- throw new Error(context + ": Primitives are missing");
623
+ throw new Error("".concat(context, ": Primitives are missing"));
624
624
  }
625
625
  if (primitives[0].index == undefined) {
626
626
  ArrayItem.Assign(primitives);
627
627
  }
628
628
  var promises = new Array();
629
- this.logOpen(context + " " + (mesh.name || ""));
630
- var name = node.name || "node" + node.index;
629
+ this.logOpen("".concat(context, " ").concat(mesh.name || ""));
630
+ var name = node.name || "node".concat(node.index);
631
631
  if (primitives.length === 1) {
632
632
  var primitive = mesh.primitives[0];
633
- promises.push(this._loadMeshPrimitiveAsync(context + "/primitives/" + primitive.index, name, node, mesh, primitive, function (babylonMesh) {
633
+ promises.push(this._loadMeshPrimitiveAsync("".concat(context, "/primitives/").concat(primitive.index), name, node, mesh, primitive, function (babylonMesh) {
634
634
  node._babylonTransformNode = babylonMesh;
635
635
  node._primitiveBabylonMeshes = [babylonMesh];
636
636
  }));
@@ -643,15 +643,15 @@ var GLTFLoader = /** @class */ (function () {
643
643
  node._primitiveBabylonMeshes = [];
644
644
  for (var _i = 0, primitives_1 = primitives; _i < primitives_1.length; _i++) {
645
645
  var primitive = primitives_1[_i];
646
- promises.push(this._loadMeshPrimitiveAsync(context + "/primitives/" + primitive.index, name + "_primitive" + primitive.index, node, mesh, primitive, function (babylonMesh) {
646
+ promises.push(this._loadMeshPrimitiveAsync("".concat(context, "/primitives/").concat(primitive.index), "".concat(name, "_primitive").concat(primitive.index), node, mesh, primitive, function (babylonMesh) {
647
647
  babylonMesh.parent = node._babylonTransformNode;
648
648
  node._primitiveBabylonMeshes.push(babylonMesh);
649
649
  }));
650
650
  }
651
651
  }
652
652
  if (node.skin != undefined) {
653
- var skin = ArrayItem.Get(context + "/skin", this._gltf.skins, node.skin);
654
- promises.push(this._loadSkinAsync("/skins/" + skin.index, node, skin));
653
+ var skin = ArrayItem.Get("".concat(context, "/skin"), this._gltf.skins, node.skin);
654
+ promises.push(this._loadSkinAsync("/skins/".concat(skin.index), node, skin));
655
655
  }
656
656
  assign(node._babylonTransformNode);
657
657
  this.logClose();
@@ -675,7 +675,7 @@ var GLTFLoader = /** @class */ (function () {
675
675
  if (extensionPromise) {
676
676
  return extensionPromise;
677
677
  }
678
- this.logOpen("" + context);
678
+ this.logOpen("".concat(context));
679
679
  var shouldInstance = (this._disableInstancedMesh === 0) && this._parent.createInstances && (node.skin == undefined && !mesh.primitives[0].targets);
680
680
  var babylonAbstractMesh;
681
681
  var promise;
@@ -713,8 +713,8 @@ var GLTFLoader = /** @class */ (function () {
713
713
  babylonMesh_1.material = babylonMaterial;
714
714
  }
715
715
  else {
716
- var material = ArrayItem.Get(context + "/material", this._gltf.materials, primitive.material);
717
- promises.push(this._loadMaterialAsync("/materials/" + material.index, material, babylonMesh_1, babylonDrawMode, function (babylonMaterial) {
716
+ var material = ArrayItem.Get("".concat(context, "/material"), this._gltf.materials, primitive.material);
717
+ promises.push(this._loadMaterialAsync("/materials/".concat(material.index), material, babylonMesh_1, babylonDrawMode, function (babylonMaterial) {
718
718
  babylonMesh_1.material = babylonMaterial;
719
719
  }));
720
720
  }
@@ -743,7 +743,7 @@ var GLTFLoader = /** @class */ (function () {
743
743
  }
744
744
  var attributes = primitive.attributes;
745
745
  if (!attributes) {
746
- throw new Error(context + ": Attributes are missing");
746
+ throw new Error("".concat(context, ": Attributes are missing"));
747
747
  }
748
748
  var promises = new Array();
749
749
  var babylonGeometry = new Geometry(babylonMesh.name, this._babylonScene);
@@ -751,8 +751,8 @@ var GLTFLoader = /** @class */ (function () {
751
751
  babylonMesh.isUnIndexed = true;
752
752
  }
753
753
  else {
754
- var accessor = ArrayItem.Get(context + "/indices", this._gltf.accessors, primitive.indices);
755
- promises.push(this._loadIndicesAccessorAsync("/accessors/" + accessor.index, accessor).then(function (data) {
754
+ var accessor = ArrayItem.Get("".concat(context, "/indices"), this._gltf.accessors, primitive.indices);
755
+ promises.push(this._loadIndicesAccessorAsync("/accessors/".concat(accessor.index), accessor).then(function (data) {
756
756
  babylonGeometry.setIndices(data);
757
757
  }));
758
758
  }
@@ -764,8 +764,8 @@ var GLTFLoader = /** @class */ (function () {
764
764
  if (babylonMesh._delayInfo.indexOf(kind) === -1) {
765
765
  babylonMesh._delayInfo.push(kind);
766
766
  }
767
- var accessor = ArrayItem.Get(context + "/attributes/" + attribute, _this._gltf.accessors, attributes[attribute]);
768
- promises.push(_this._loadVertexAccessorAsync("/accessors/" + accessor.index, accessor, kind).then(function (babylonVertexBuffer) {
767
+ var accessor = ArrayItem.Get("".concat(context, "/attributes/").concat(attribute), _this._gltf.accessors, attributes[attribute]);
768
+ promises.push(_this._loadVertexAccessorAsync("/accessors/".concat(accessor.index), accessor, kind).then(function (babylonVertexBuffer) {
769
769
  if (babylonVertexBuffer.getKind() === VertexBuffer.PositionKind && !_this.parent.alwaysComputeBoundingBox && !babylonMesh.skeleton) {
770
770
  var mmin = accessor.min, mmax = accessor.max;
771
771
  if (mmin !== undefined && mmax !== undefined) {
@@ -836,14 +836,14 @@ var GLTFLoader = /** @class */ (function () {
836
836
  node._numMorphTargets = primitive.targets.length;
837
837
  }
838
838
  else if (primitive.targets.length !== node._numMorphTargets) {
839
- throw new Error(context + ": Primitives do not have the same number of targets");
839
+ throw new Error("".concat(context, ": Primitives do not have the same number of targets"));
840
840
  }
841
841
  var targetNames = mesh.extras ? mesh.extras.targetNames : null;
842
842
  babylonMesh.morphTargetManager = new MorphTargetManager(babylonMesh.getScene());
843
843
  babylonMesh.morphTargetManager.areUpdatesFrozen = true;
844
844
  for (var index = 0; index < primitive.targets.length; index++) {
845
845
  var weight = node.weights ? node.weights[index] : mesh.weights ? mesh.weights[index] : 0;
846
- var name_4 = targetNames ? targetNames[index] : "morphTarget" + index;
846
+ var name_4 = targetNames ? targetNames[index] : "morphTarget".concat(index);
847
847
  babylonMesh.morphTargetManager.addTarget(new MorphTarget(name_4, weight, babylonMesh.getScene()));
848
848
  // TODO: tell the target whether it has positions, normals, tangents
849
849
  }
@@ -856,7 +856,7 @@ var GLTFLoader = /** @class */ (function () {
856
856
  var morphTargetManager = babylonMesh.morphTargetManager;
857
857
  for (var index = 0; index < morphTargetManager.numTargets; index++) {
858
858
  var babylonMorphTarget = morphTargetManager.getTarget(index);
859
- promises.push(this._loadMorphTargetVertexDataAsync(context + "/targets/" + index, babylonGeometry, primitive.targets[index], babylonMorphTarget));
859
+ promises.push(this._loadMorphTargetVertexDataAsync("".concat(context, "/targets/").concat(index), babylonGeometry, primitive.targets[index], babylonMorphTarget));
860
860
  }
861
861
  return Promise.all(promises).then(function () {
862
862
  morphTargetManager.areUpdatesFrozen = false;
@@ -873,8 +873,8 @@ var GLTFLoader = /** @class */ (function () {
873
873
  if (!babylonVertexBuffer) {
874
874
  return;
875
875
  }
876
- var accessor = ArrayItem.Get(context + "/" + attribute, _this._gltf.accessors, attributes[attribute]);
877
- promises.push(_this._loadFloatAccessorAsync("/accessors/" + accessor.index, accessor).then(function (data) {
876
+ var accessor = ArrayItem.Get("".concat(context, "/").concat(attribute), _this._gltf.accessors, attributes[attribute]);
877
+ promises.push(_this._loadFloatAccessorAsync("/accessors/".concat(accessor.index), accessor).then(function (data) {
878
878
  setData(babylonVertexBuffer, data);
879
879
  }));
880
880
  };
@@ -951,7 +951,7 @@ var GLTFLoader = /** @class */ (function () {
951
951
  assignSkeleton(skin._data.babylonSkeleton);
952
952
  return skin._data.promise;
953
953
  }
954
- var skeletonId = "skeleton" + skin.index;
954
+ var skeletonId = "skeleton".concat(skin.index);
955
955
  this._babylonScene._blockEntityCollection = !!this._assetContainer;
956
956
  var babylonSkeleton = new Skeleton(skin.name || skeletonId, skeletonId, this._babylonScene);
957
957
  babylonSkeleton._parentContainer = this._assetContainer;
@@ -973,7 +973,7 @@ var GLTFLoader = /** @class */ (function () {
973
973
  var babylonBones = {};
974
974
  for (var _i = 0, _a = skin.joints; _i < _a.length; _i++) {
975
975
  var index = _a[_i];
976
- var node = ArrayItem.Get(context + "/joints/" + index, this._gltf.nodes, index);
976
+ var node = ArrayItem.Get("".concat(context, "/joints/").concat(index), this._gltf.nodes, index);
977
977
  this._loadBone(node, skin, babylonSkeleton, babylonBones);
978
978
  }
979
979
  };
@@ -987,7 +987,7 @@ var GLTFLoader = /** @class */ (function () {
987
987
  babylonParentBone = this._loadBone(node.parent, skin, babylonSkeleton, babylonBones);
988
988
  }
989
989
  var boneIndex = skin.joints.indexOf(node.index);
990
- babylonBone = new Bone(node.name || "joint" + node.index, babylonSkeleton, babylonParentBone, this._getNodeMatrix(node), null, null, boneIndex);
990
+ babylonBone = new Bone(node.name || "joint".concat(node.index), babylonSkeleton, babylonParentBone, this._getNodeMatrix(node), null, null, boneIndex);
991
991
  babylonBones[node.index] = babylonBone;
992
992
  node._babylonBones = node._babylonBones || [];
993
993
  node._babylonBones.push(babylonBone);
@@ -997,8 +997,8 @@ var GLTFLoader = /** @class */ (function () {
997
997
  if (skin.inverseBindMatrices == undefined) {
998
998
  return Promise.resolve(null);
999
999
  }
1000
- var accessor = ArrayItem.Get(context + "/inverseBindMatrices", this._gltf.accessors, skin.inverseBindMatrices);
1001
- return this._loadFloatAccessorAsync("/accessors/" + accessor.index, accessor);
1000
+ var accessor = ArrayItem.Get("".concat(context, "/inverseBindMatrices"), this._gltf.accessors, skin.inverseBindMatrices);
1001
+ return this._loadFloatAccessorAsync("/accessors/".concat(accessor.index), accessor);
1002
1002
  };
1003
1003
  GLTFLoader.prototype._updateBoneMatrices = function (babylonSkeleton, inverseBindMatricesData) {
1004
1004
  for (var _i = 0, _a = babylonSkeleton.bones; _i < _a.length; _i++) {
@@ -1036,9 +1036,9 @@ var GLTFLoader = /** @class */ (function () {
1036
1036
  return extensionPromise;
1037
1037
  }
1038
1038
  var promises = new Array();
1039
- this.logOpen(context + " " + (camera.name || ""));
1039
+ this.logOpen("".concat(context, " ").concat(camera.name || ""));
1040
1040
  this._babylonScene._blockEntityCollection = !!this._assetContainer;
1041
- var babylonCamera = new FreeCamera(camera.name || "camera" + camera.index, Vector3.Zero(), this._babylonScene, false);
1041
+ var babylonCamera = new FreeCamera(camera.name || "camera".concat(camera.index), Vector3.Zero(), this._babylonScene, false);
1042
1042
  babylonCamera._parentContainer = this._assetContainer;
1043
1043
  this._babylonScene._blockEntityCollection = false;
1044
1044
  babylonCamera.ignoreParentScaling = true;
@@ -1047,7 +1047,7 @@ var GLTFLoader = /** @class */ (function () {
1047
1047
  case "perspective" /* PERSPECTIVE */: {
1048
1048
  var perspective = camera.perspective;
1049
1049
  if (!perspective) {
1050
- throw new Error(context + ": Camera perspective properties are missing");
1050
+ throw new Error("".concat(context, ": Camera perspective properties are missing"));
1051
1051
  }
1052
1052
  babylonCamera.fov = perspective.yfov;
1053
1053
  babylonCamera.minZ = perspective.znear;
@@ -1056,7 +1056,7 @@ var GLTFLoader = /** @class */ (function () {
1056
1056
  }
1057
1057
  case "orthographic" /* ORTHOGRAPHIC */: {
1058
1058
  if (!camera.orthographic) {
1059
- throw new Error(context + ": Camera orthographic properties are missing");
1059
+ throw new Error("".concat(context, ": Camera orthographic properties are missing"));
1060
1060
  }
1061
1061
  babylonCamera.mode = Camera.ORTHOGRAPHIC_CAMERA;
1062
1062
  babylonCamera.orthoLeft = -camera.orthographic.xmag;
@@ -1068,7 +1068,7 @@ var GLTFLoader = /** @class */ (function () {
1068
1068
  break;
1069
1069
  }
1070
1070
  default: {
1071
- throw new Error(context + ": Invalid camera type (" + camera.type + ")");
1071
+ throw new Error("".concat(context, ": Invalid camera type (").concat(camera.type, ")"));
1072
1072
  }
1073
1073
  }
1074
1074
  GLTFLoader.AddPointerMetadata(babylonCamera, context);
@@ -1087,7 +1087,7 @@ var GLTFLoader = /** @class */ (function () {
1087
1087
  var promises = new Array();
1088
1088
  for (var index = 0; index < animations.length; index++) {
1089
1089
  var animation = animations[index];
1090
- promises.push(this.loadAnimationAsync("/animations/" + animation.index, animation).then(function (animationGroup) {
1090
+ promises.push(this.loadAnimationAsync("/animations/".concat(animation.index), animation).then(function (animationGroup) {
1091
1091
  // Delete the animation group if it ended up not having any animations in it.
1092
1092
  if (animationGroup.targetedAnimations.length === 0) {
1093
1093
  animationGroup.dispose();
@@ -1108,7 +1108,7 @@ var GLTFLoader = /** @class */ (function () {
1108
1108
  return promise;
1109
1109
  }
1110
1110
  this._babylonScene._blockEntityCollection = !!this._assetContainer;
1111
- var babylonAnimationGroup = new AnimationGroup(animation.name || "animation" + animation.index, this._babylonScene);
1111
+ var babylonAnimationGroup = new AnimationGroup(animation.name || "animation".concat(animation.index), this._babylonScene);
1112
1112
  babylonAnimationGroup._parentContainer = this._assetContainer;
1113
1113
  this._babylonScene._blockEntityCollection = false;
1114
1114
  animation._babylonAnimationGroup = babylonAnimationGroup;
@@ -1117,7 +1117,7 @@ var GLTFLoader = /** @class */ (function () {
1117
1117
  ArrayItem.Assign(animation.samplers);
1118
1118
  for (var _i = 0, _a = animation.channels; _i < _a.length; _i++) {
1119
1119
  var channel = _a[_i];
1120
- promises.push(this._loadAnimationChannelAsync(context + "/channels/" + channel.index, context, animation, channel, babylonAnimationGroup));
1120
+ promises.push(this._loadAnimationChannelAsync("".concat(context, "/channels/").concat(channel.index), context, animation, channel, babylonAnimationGroup));
1121
1121
  }
1122
1122
  return Promise.all(promises).then(function () {
1123
1123
  babylonAnimationGroup.normalize(0);
@@ -1140,14 +1140,14 @@ var GLTFLoader = /** @class */ (function () {
1140
1140
  if (channel.target.node == undefined) {
1141
1141
  return Promise.resolve();
1142
1142
  }
1143
- var targetNode = ArrayItem.Get(context + "/target/node", this._gltf.nodes, channel.target.node);
1143
+ var targetNode = ArrayItem.Get("".concat(context, "/target/node"), this._gltf.nodes, channel.target.node);
1144
1144
  // Ignore animations that have no animation targets.
1145
1145
  if ((channel.target.path === "weights" /* WEIGHTS */ && !targetNode._numMorphTargets) ||
1146
1146
  (channel.target.path !== "weights" /* WEIGHTS */ && !targetNode._babylonTransformNode)) {
1147
1147
  return Promise.resolve();
1148
1148
  }
1149
- var sampler = ArrayItem.Get(context + "/sampler", animation.samplers, channel.sampler);
1150
- return this._loadAnimationSamplerAsync(animationContext + "/samplers/" + channel.sampler, sampler).then(function (data) {
1149
+ var sampler = ArrayItem.Get("".concat(context, "/sampler"), animation.samplers, channel.sampler);
1150
+ return this._loadAnimationSamplerAsync("".concat(animationContext, "/samplers/").concat(channel.sampler), sampler).then(function (data) {
1151
1151
  var targetPath;
1152
1152
  var animationType;
1153
1153
  switch (channel.target.path) {
@@ -1172,7 +1172,7 @@ var GLTFLoader = /** @class */ (function () {
1172
1172
  break;
1173
1173
  }
1174
1174
  default: {
1175
- throw new Error(context + "/target/path: Invalid value (" + channel.target.path + ")");
1175
+ throw new Error("".concat(context, "/target/path: Invalid value (").concat(channel.target.path, ")"));
1176
1176
  }
1177
1177
  }
1178
1178
  var outputBufferOffset = 0;
@@ -1246,7 +1246,7 @@ var GLTFLoader = /** @class */ (function () {
1246
1246
  }
1247
1247
  if (targetPath === "influence") {
1248
1248
  var _loop_2 = function (targetIndex) {
1249
- var animationName = babylonAnimationGroup.name + "_channel" + babylonAnimationGroup.targetedAnimations.length;
1249
+ var animationName = "".concat(babylonAnimationGroup.name, "_channel").concat(babylonAnimationGroup.targetedAnimations.length);
1250
1250
  var babylonAnimation = new Animation(animationName, targetPath, 1, animationType);
1251
1251
  babylonAnimation.setKeys(keys.map(function (key) { return ({
1252
1252
  frame: key.frame,
@@ -1267,7 +1267,7 @@ var GLTFLoader = /** @class */ (function () {
1267
1267
  }
1268
1268
  }
1269
1269
  else {
1270
- var animationName = babylonAnimationGroup.name + "_channel" + babylonAnimationGroup.targetedAnimations.length;
1270
+ var animationName = "".concat(babylonAnimationGroup.name, "_channel").concat(babylonAnimationGroup.targetedAnimations.length);
1271
1271
  var babylonAnimation = new Animation(animationName, targetPath, 1, animationType);
1272
1272
  babylonAnimation.setKeys(keys);
1273
1273
  if (animationTargetOverride != null && animationTargetOverride.animations != null) {
@@ -1293,14 +1293,14 @@ var GLTFLoader = /** @class */ (function () {
1293
1293
  break;
1294
1294
  }
1295
1295
  default: {
1296
- throw new Error(context + "/interpolation: Invalid value (" + sampler.interpolation + ")");
1296
+ throw new Error("".concat(context, "/interpolation: Invalid value (").concat(sampler.interpolation, ")"));
1297
1297
  }
1298
1298
  }
1299
- var inputAccessor = ArrayItem.Get(context + "/input", this._gltf.accessors, sampler.input);
1300
- var outputAccessor = ArrayItem.Get(context + "/output", this._gltf.accessors, sampler.output);
1299
+ var inputAccessor = ArrayItem.Get("".concat(context, "/input"), this._gltf.accessors, sampler.input);
1300
+ var outputAccessor = ArrayItem.Get("".concat(context, "/output"), this._gltf.accessors, sampler.output);
1301
1301
  sampler._data = Promise.all([
1302
- this._loadFloatAccessorAsync("/accessors/" + inputAccessor.index, inputAccessor),
1303
- this._loadFloatAccessorAsync("/accessors/" + outputAccessor.index, outputAccessor)
1302
+ this._loadFloatAccessorAsync("/accessors/".concat(inputAccessor.index), inputAccessor),
1303
+ this._loadFloatAccessorAsync("/accessors/".concat(outputAccessor.index), outputAccessor)
1304
1304
  ]).then(function (_a) {
1305
1305
  var inputData = _a[0], outputData = _a[1];
1306
1306
  return {
@@ -1326,11 +1326,11 @@ var GLTFLoader = /** @class */ (function () {
1326
1326
  }
1327
1327
  if (!buffer._data) {
1328
1328
  if (buffer.uri) {
1329
- buffer._data = this.loadUriAsync(context + "/uri", buffer, buffer.uri);
1329
+ buffer._data = this.loadUriAsync("".concat(context, "/uri"), buffer, buffer.uri);
1330
1330
  }
1331
1331
  else {
1332
1332
  if (!this._bin) {
1333
- throw new Error(context + ": Uri is missing or the binary glTF is missing its binary chunk");
1333
+ throw new Error("".concat(context, ": Uri is missing or the binary glTF is missing its binary chunk"));
1334
1334
  }
1335
1335
  buffer._data = this._bin.readAsync(0, buffer.byteLength);
1336
1336
  }
@@ -1340,7 +1340,7 @@ var GLTFLoader = /** @class */ (function () {
1340
1340
  return new Uint8Array(data.buffer, data.byteOffset + byteOffset, byteLength);
1341
1341
  }
1342
1342
  catch (e) {
1343
- throw new Error(context + ": " + e.message);
1343
+ throw new Error("".concat(context, ": ").concat(e.message));
1344
1344
  }
1345
1345
  });
1346
1346
  };
@@ -1358,8 +1358,8 @@ var GLTFLoader = /** @class */ (function () {
1358
1358
  if (bufferView._data) {
1359
1359
  return bufferView._data;
1360
1360
  }
1361
- var buffer = ArrayItem.Get(context + "/buffer", this._gltf.buffers, bufferView.buffer);
1362
- bufferView._data = this.loadBufferAsync("/buffers/" + buffer.index, buffer, (bufferView.byteOffset || 0), bufferView.byteLength);
1361
+ var buffer = ArrayItem.Get("".concat(context, "/buffer"), this._gltf.buffers, bufferView.buffer);
1362
+ bufferView._data = this.loadBufferAsync("/buffers/".concat(buffer.index), buffer, (bufferView.byteOffset || 0), bufferView.byteLength);
1363
1363
  return bufferView._data;
1364
1364
  };
1365
1365
  GLTFLoader.prototype._loadAccessorAsync = function (context, accessor, constructor) {
@@ -1374,8 +1374,8 @@ var GLTFLoader = /** @class */ (function () {
1374
1374
  accessor._data = Promise.resolve(new constructor(length));
1375
1375
  }
1376
1376
  else {
1377
- var bufferView_1 = ArrayItem.Get(context + "/bufferView", this._gltf.bufferViews, accessor.bufferView);
1378
- accessor._data = this.loadBufferViewAsync("/bufferViews/" + bufferView_1.index, bufferView_1).then(function (data) {
1377
+ var bufferView_1 = ArrayItem.Get("".concat(context, "/bufferView"), this._gltf.bufferViews, accessor.bufferView);
1378
+ accessor._data = this.loadBufferViewAsync("/bufferViews/".concat(bufferView_1.index), bufferView_1).then(function (data) {
1379
1379
  if (accessor.componentType === 5126 /* FLOAT */ && !accessor.normalized && (!bufferView_1.byteStride || bufferView_1.byteStride === byteStride)) {
1380
1380
  return GLTFLoader._GetTypedArray(context, accessor.componentType, data, accessor.byteOffset, length);
1381
1381
  }
@@ -1392,21 +1392,21 @@ var GLTFLoader = /** @class */ (function () {
1392
1392
  var sparse_1 = accessor.sparse;
1393
1393
  accessor._data = accessor._data.then(function (data) {
1394
1394
  var typedArray = data;
1395
- var indicesBufferView = ArrayItem.Get(context + "/sparse/indices/bufferView", _this._gltf.bufferViews, sparse_1.indices.bufferView);
1396
- var valuesBufferView = ArrayItem.Get(context + "/sparse/values/bufferView", _this._gltf.bufferViews, sparse_1.values.bufferView);
1395
+ var indicesBufferView = ArrayItem.Get("".concat(context, "/sparse/indices/bufferView"), _this._gltf.bufferViews, sparse_1.indices.bufferView);
1396
+ var valuesBufferView = ArrayItem.Get("".concat(context, "/sparse/values/bufferView"), _this._gltf.bufferViews, sparse_1.values.bufferView);
1397
1397
  return Promise.all([
1398
- _this.loadBufferViewAsync("/bufferViews/" + indicesBufferView.index, indicesBufferView),
1399
- _this.loadBufferViewAsync("/bufferViews/" + valuesBufferView.index, valuesBufferView)
1398
+ _this.loadBufferViewAsync("/bufferViews/".concat(indicesBufferView.index), indicesBufferView),
1399
+ _this.loadBufferViewAsync("/bufferViews/".concat(valuesBufferView.index), valuesBufferView)
1400
1400
  ]).then(function (_a) {
1401
1401
  var indicesData = _a[0], valuesData = _a[1];
1402
- var indices = GLTFLoader._GetTypedArray(context + "/sparse/indices", sparse_1.indices.componentType, indicesData, sparse_1.indices.byteOffset, sparse_1.count);
1402
+ var indices = GLTFLoader._GetTypedArray("".concat(context, "/sparse/indices"), sparse_1.indices.componentType, indicesData, sparse_1.indices.byteOffset, sparse_1.count);
1403
1403
  var sparseLength = numComponents * sparse_1.count;
1404
1404
  var values;
1405
1405
  if (accessor.componentType === 5126 /* FLOAT */ && !accessor.normalized) {
1406
- values = GLTFLoader._GetTypedArray(context + "/sparse/values", accessor.componentType, valuesData, sparse_1.values.byteOffset, sparseLength);
1406
+ values = GLTFLoader._GetTypedArray("".concat(context, "/sparse/values"), accessor.componentType, valuesData, sparse_1.values.byteOffset, sparseLength);
1407
1407
  }
1408
1408
  else {
1409
- var sparseData = GLTFLoader._GetTypedArray(context + "/sparse/values", accessor.componentType, valuesData, sparse_1.values.byteOffset, sparseLength);
1409
+ var sparseData = GLTFLoader._GetTypedArray("".concat(context, "/sparse/values"), accessor.componentType, valuesData, sparse_1.values.byteOffset, sparseLength);
1410
1410
  values = new constructor(sparseLength);
1411
1411
  VertexBuffer.ForEach(sparseData, 0, byteStride, numComponents, accessor.componentType, values.length, accessor.normalized || false, function (value, index) {
1412
1412
  values[index] = value;
@@ -1431,23 +1431,23 @@ var GLTFLoader = /** @class */ (function () {
1431
1431
  };
1432
1432
  GLTFLoader.prototype._loadIndicesAccessorAsync = function (context, accessor) {
1433
1433
  if (accessor.type !== "SCALAR" /* SCALAR */) {
1434
- throw new Error(context + "/type: Invalid value " + accessor.type);
1434
+ throw new Error("".concat(context, "/type: Invalid value ").concat(accessor.type));
1435
1435
  }
1436
1436
  if (accessor.componentType !== 5121 /* UNSIGNED_BYTE */ &&
1437
1437
  accessor.componentType !== 5123 /* UNSIGNED_SHORT */ &&
1438
1438
  accessor.componentType !== 5125 /* UNSIGNED_INT */) {
1439
- throw new Error(context + "/componentType: Invalid value " + accessor.componentType);
1439
+ throw new Error("".concat(context, "/componentType: Invalid value ").concat(accessor.componentType));
1440
1440
  }
1441
1441
  if (accessor._data) {
1442
1442
  return accessor._data;
1443
1443
  }
1444
1444
  if (accessor.sparse) {
1445
- var constructor = GLTFLoader._GetTypedArrayConstructor(context + "/componentType", accessor.componentType);
1445
+ var constructor = GLTFLoader._GetTypedArrayConstructor("".concat(context, "/componentType"), accessor.componentType);
1446
1446
  accessor._data = this._loadAccessorAsync(context, accessor, constructor);
1447
1447
  }
1448
1448
  else {
1449
- var bufferView = ArrayItem.Get(context + "/bufferView", this._gltf.bufferViews, accessor.bufferView);
1450
- accessor._data = this.loadBufferViewAsync("/bufferViews/" + bufferView.index, bufferView).then(function (data) {
1449
+ var bufferView = ArrayItem.Get("".concat(context, "/bufferView"), this._gltf.bufferViews, accessor.bufferView);
1450
+ accessor._data = this.loadBufferViewAsync("/bufferViews/".concat(bufferView.index), bufferView).then(function (data) {
1451
1451
  return GLTFLoader._GetTypedArray(context, accessor.componentType, data, accessor.byteOffset, accessor.count);
1452
1452
  });
1453
1453
  }
@@ -1458,7 +1458,7 @@ var GLTFLoader = /** @class */ (function () {
1458
1458
  if (bufferView._babylonBuffer) {
1459
1459
  return bufferView._babylonBuffer;
1460
1460
  }
1461
- bufferView._babylonBuffer = this.loadBufferViewAsync("/bufferViews/" + bufferView.index, bufferView).then(function (data) {
1461
+ bufferView._babylonBuffer = this.loadBufferViewAsync("/bufferViews/".concat(bufferView.index), bufferView).then(function (data) {
1462
1462
  return new Buffer(_this._babylonScene.getEngine(), data, false);
1463
1463
  });
1464
1464
  return bufferView._babylonBuffer;
@@ -1485,7 +1485,7 @@ var GLTFLoader = /** @class */ (function () {
1485
1485
  });
1486
1486
  }
1487
1487
  else {
1488
- var bufferView_2 = ArrayItem.Get(context + "/bufferView", this._gltf.bufferViews, accessor.bufferView);
1488
+ var bufferView_2 = ArrayItem.Get("".concat(context, "/bufferView"), this._gltf.bufferViews, accessor.bufferView);
1489
1489
  accessor._babylonVertexBuffer[kind] = this._loadVertexBufferViewAsync(bufferView_2, kind).then(function (babylonBuffer) {
1490
1490
  var size = GLTFLoader._GetNumComponents(context, accessor.type);
1491
1491
  return new VertexBuffer(_this._babylonScene.getEngine(), babylonBuffer, kind, false, false, bufferView_2.byteStride, false, accessor.byteOffset, size, accessor.componentType, accessor.normalized, true, 1, true);
@@ -1495,7 +1495,7 @@ var GLTFLoader = /** @class */ (function () {
1495
1495
  };
1496
1496
  GLTFLoader.prototype._loadMaterialMetallicRoughnessPropertiesAsync = function (context, properties, babylonMaterial) {
1497
1497
  if (!(babylonMaterial instanceof PBRMaterial)) {
1498
- throw new Error(context + ": Material type not supported");
1498
+ throw new Error("".concat(context, ": Material type not supported"));
1499
1499
  }
1500
1500
  var promises = new Array();
1501
1501
  if (properties) {
@@ -1509,15 +1509,15 @@ var GLTFLoader = /** @class */ (function () {
1509
1509
  babylonMaterial.metallic = properties.metallicFactor == undefined ? 1 : properties.metallicFactor;
1510
1510
  babylonMaterial.roughness = properties.roughnessFactor == undefined ? 1 : properties.roughnessFactor;
1511
1511
  if (properties.baseColorTexture) {
1512
- promises.push(this.loadTextureInfoAsync(context + "/baseColorTexture", properties.baseColorTexture, function (texture) {
1513
- texture.name = babylonMaterial.name + " (Base Color)";
1512
+ promises.push(this.loadTextureInfoAsync("".concat(context, "/baseColorTexture"), properties.baseColorTexture, function (texture) {
1513
+ texture.name = "".concat(babylonMaterial.name, " (Base Color)");
1514
1514
  babylonMaterial.albedoTexture = texture;
1515
1515
  }));
1516
1516
  }
1517
1517
  if (properties.metallicRoughnessTexture) {
1518
1518
  properties.metallicRoughnessTexture.nonColorData = true;
1519
- promises.push(this.loadTextureInfoAsync(context + "/metallicRoughnessTexture", properties.metallicRoughnessTexture, function (texture) {
1520
- texture.name = babylonMaterial.name + " (Metallic Roughness)";
1519
+ promises.push(this.loadTextureInfoAsync("".concat(context, "/metallicRoughnessTexture"), properties.metallicRoughnessTexture, function (texture) {
1520
+ texture.name = "".concat(babylonMaterial.name, " (Metallic Roughness)");
1521
1521
  babylonMaterial.metallicTexture = texture;
1522
1522
  }));
1523
1523
  babylonMaterial.useMetallnessFromMetallicTextureBlue = true;
@@ -1537,7 +1537,7 @@ var GLTFLoader = /** @class */ (function () {
1537
1537
  material._data = material._data || {};
1538
1538
  var babylonData = material._data[babylonDrawMode];
1539
1539
  if (!babylonData) {
1540
- this.logOpen(context + " " + (material.name || ""));
1540
+ this.logOpen("".concat(context, " ").concat(material.name || ""));
1541
1541
  var babylonMaterial = this.createMaterial(context, material, babylonDrawMode);
1542
1542
  babylonData = {
1543
1543
  babylonMaterial: babylonMaterial,
@@ -1590,7 +1590,7 @@ var GLTFLoader = /** @class */ (function () {
1590
1590
  if (extensionPromise) {
1591
1591
  return extensionPromise;
1592
1592
  }
1593
- var name = material.name || "material" + material.index;
1593
+ var name = material.name || "material".concat(material.index);
1594
1594
  var babylonMaterial = this._createDefaultMaterial(name, babylonDrawMode);
1595
1595
  return babylonMaterial;
1596
1596
  };
@@ -1609,7 +1609,7 @@ var GLTFLoader = /** @class */ (function () {
1609
1609
  var promises = new Array();
1610
1610
  promises.push(this.loadMaterialBasePropertiesAsync(context, material, babylonMaterial));
1611
1611
  if (material.pbrMetallicRoughness) {
1612
- promises.push(this._loadMaterialMetallicRoughnessPropertiesAsync(context + "/pbrMetallicRoughness", material.pbrMetallicRoughness, babylonMaterial));
1612
+ promises.push(this._loadMaterialMetallicRoughnessPropertiesAsync("".concat(context, "/pbrMetallicRoughness"), material.pbrMetallicRoughness, babylonMaterial));
1613
1613
  }
1614
1614
  this.loadMaterialAlphaProperties(context, material, babylonMaterial);
1615
1615
  return Promise.all(promises).then(function () { });
@@ -1623,7 +1623,7 @@ var GLTFLoader = /** @class */ (function () {
1623
1623
  */
1624
1624
  GLTFLoader.prototype.loadMaterialBasePropertiesAsync = function (context, material, babylonMaterial) {
1625
1625
  if (!(babylonMaterial instanceof PBRMaterial)) {
1626
- throw new Error(context + ": Material type not supported");
1626
+ throw new Error("".concat(context, ": Material type not supported"));
1627
1627
  }
1628
1628
  var promises = new Array();
1629
1629
  babylonMaterial.emissiveColor = material.emissiveFactor ? Color3.FromArray(material.emissiveFactor) : new Color3(0, 0, 0);
@@ -1633,8 +1633,8 @@ var GLTFLoader = /** @class */ (function () {
1633
1633
  }
1634
1634
  if (material.normalTexture) {
1635
1635
  material.normalTexture.nonColorData = true;
1636
- promises.push(this.loadTextureInfoAsync(context + "/normalTexture", material.normalTexture, function (texture) {
1637
- texture.name = babylonMaterial.name + " (Normal)";
1636
+ promises.push(this.loadTextureInfoAsync("".concat(context, "/normalTexture"), material.normalTexture, function (texture) {
1637
+ texture.name = "".concat(babylonMaterial.name, " (Normal)");
1638
1638
  babylonMaterial.bumpTexture = texture;
1639
1639
  }));
1640
1640
  babylonMaterial.invertNormalMapX = !this._babylonScene.useRightHandedSystem;
@@ -1646,8 +1646,8 @@ var GLTFLoader = /** @class */ (function () {
1646
1646
  }
1647
1647
  if (material.occlusionTexture) {
1648
1648
  material.occlusionTexture.nonColorData = true;
1649
- promises.push(this.loadTextureInfoAsync(context + "/occlusionTexture", material.occlusionTexture, function (texture) {
1650
- texture.name = babylonMaterial.name + " (Occlusion)";
1649
+ promises.push(this.loadTextureInfoAsync("".concat(context, "/occlusionTexture"), material.occlusionTexture, function (texture) {
1650
+ texture.name = "".concat(babylonMaterial.name, " (Occlusion)");
1651
1651
  babylonMaterial.ambientTexture = texture;
1652
1652
  }));
1653
1653
  babylonMaterial.useAmbientInGrayScale = true;
@@ -1656,8 +1656,8 @@ var GLTFLoader = /** @class */ (function () {
1656
1656
  }
1657
1657
  }
1658
1658
  if (material.emissiveTexture) {
1659
- promises.push(this.loadTextureInfoAsync(context + "/emissiveTexture", material.emissiveTexture, function (texture) {
1660
- texture.name = babylonMaterial.name + " (Emissive)";
1659
+ promises.push(this.loadTextureInfoAsync("".concat(context, "/emissiveTexture"), material.emissiveTexture, function (texture) {
1660
+ texture.name = "".concat(babylonMaterial.name, " (Emissive)");
1661
1661
  babylonMaterial.emissiveTexture = texture;
1662
1662
  }));
1663
1663
  }
@@ -1672,7 +1672,7 @@ var GLTFLoader = /** @class */ (function () {
1672
1672
  */
1673
1673
  GLTFLoader.prototype.loadMaterialAlphaProperties = function (context, material, babylonMaterial) {
1674
1674
  if (!(babylonMaterial instanceof PBRMaterial)) {
1675
- throw new Error(context + ": Material type not supported");
1675
+ throw new Error("".concat(context, ": Material type not supported"));
1676
1676
  }
1677
1677
  var alphaMode = material.alphaMode || "OPAQUE" /* OPAQUE */;
1678
1678
  switch (alphaMode) {
@@ -1697,7 +1697,7 @@ var GLTFLoader = /** @class */ (function () {
1697
1697
  break;
1698
1698
  }
1699
1699
  default: {
1700
- throw new Error(context + "/alphaMode: Invalid value (" + material.alphaMode + ")");
1700
+ throw new Error("".concat(context, "/alphaMode: Invalid value (").concat(material.alphaMode, ")"));
1701
1701
  }
1702
1702
  }
1703
1703
  };
@@ -1715,13 +1715,13 @@ var GLTFLoader = /** @class */ (function () {
1715
1715
  if (extensionPromise) {
1716
1716
  return extensionPromise;
1717
1717
  }
1718
- this.logOpen("" + context);
1718
+ this.logOpen("".concat(context));
1719
1719
  if (textureInfo.texCoord >= 6) {
1720
- throw new Error(context + "/texCoord: Invalid value (" + textureInfo.texCoord + ")");
1720
+ throw new Error("".concat(context, "/texCoord: Invalid value (").concat(textureInfo.texCoord, ")"));
1721
1721
  }
1722
- var texture = ArrayItem.Get(context + "/index", this._gltf.textures, textureInfo.index);
1722
+ var texture = ArrayItem.Get("".concat(context, "/index"), this._gltf.textures, textureInfo.index);
1723
1723
  texture._textureInfo = textureInfo;
1724
- var promise = this._loadTextureAsync("/textures/" + textureInfo.index, texture, function (babylonTexture) {
1724
+ var promise = this._loadTextureAsync("/textures/".concat(textureInfo.index), texture, function (babylonTexture) {
1725
1725
  babylonTexture.coordinatesIndex = textureInfo.texCoord || 0;
1726
1726
  GLTFLoader.AddPointerMetadata(babylonTexture, context);
1727
1727
  _this._parent.onTextureLoadedObservable.notifyObservers(babylonTexture);
@@ -1737,9 +1737,9 @@ var GLTFLoader = /** @class */ (function () {
1737
1737
  if (extensionPromise) {
1738
1738
  return extensionPromise;
1739
1739
  }
1740
- this.logOpen(context + " " + (texture.name || ""));
1741
- var sampler = (texture.sampler == undefined ? GLTFLoader.DefaultSampler : ArrayItem.Get(context + "/sampler", this._gltf.samplers, texture.sampler));
1742
- var image = ArrayItem.Get(context + "/source", this._gltf.images, texture.source);
1740
+ this.logOpen("".concat(context, " ").concat(texture.name || ""));
1741
+ var sampler = (texture.sampler == undefined ? GLTFLoader.DefaultSampler : ArrayItem.Get("".concat(context, "/sampler"), this._gltf.samplers, texture.sampler));
1742
+ var image = ArrayItem.Get("".concat(context, "/source"), this._gltf.images, texture.source);
1743
1743
  var promise = this._createTextureAsync(context, sampler, image, assign, undefined, !texture._textureInfo.nonColorData);
1744
1744
  this.logClose();
1745
1745
  return promise;
@@ -1748,7 +1748,7 @@ var GLTFLoader = /** @class */ (function () {
1748
1748
  GLTFLoader.prototype._createTextureAsync = function (context, sampler, image, assign, textureLoaderOptions, useSRGBBuffer) {
1749
1749
  var _this = this;
1750
1750
  if (assign === void 0) { assign = function () { }; }
1751
- var samplerData = this._loadSampler("/samplers/" + sampler.index, sampler);
1751
+ var samplerData = this._loadSampler("/samplers/".concat(sampler.index), sampler);
1752
1752
  var promises = new Array();
1753
1753
  var deferred = new Deferred();
1754
1754
  this._babylonScene._blockEntityCollection = !!this._assetContainer;
@@ -1763,7 +1763,7 @@ var GLTFLoader = /** @class */ (function () {
1763
1763
  },
1764
1764
  onError: function (message, exception) {
1765
1765
  if (!_this._disposed) {
1766
- deferred.reject(new Error(context + ": " + ((exception && exception.message) ? exception.message : message || "Failed to load texture")));
1766
+ deferred.reject(new Error("".concat(context, ": ").concat((exception && exception.message) ? exception.message : message || "Failed to load texture")));
1767
1767
  }
1768
1768
  },
1769
1769
  mimeType: image.mimeType,
@@ -1774,9 +1774,9 @@ var GLTFLoader = /** @class */ (function () {
1774
1774
  babylonTexture._parentContainer = this._assetContainer;
1775
1775
  this._babylonScene._blockEntityCollection = false;
1776
1776
  promises.push(deferred.promise);
1777
- promises.push(this.loadImageAsync("/images/" + image.index, image).then(function (data) {
1778
- var name = image.uri || _this._fileName + "#image" + image.index;
1779
- var dataUrl = "data:" + _this._uniqueRootUrl + name;
1777
+ promises.push(this.loadImageAsync("/images/".concat(image.index), image).then(function (data) {
1778
+ var name = image.uri || "".concat(_this._fileName, "#image").concat(image.index);
1779
+ var dataUrl = "data:".concat(_this._uniqueRootUrl).concat(name);
1780
1780
  babylonTexture.updateURL(dataUrl, data);
1781
1781
  }));
1782
1782
  babylonTexture.wrapU = samplerData.wrapU;
@@ -1791,8 +1791,8 @@ var GLTFLoader = /** @class */ (function () {
1791
1791
  sampler._data = {
1792
1792
  noMipMaps: (sampler.minFilter === 9728 /* NEAREST */ || sampler.minFilter === 9729 /* LINEAR */),
1793
1793
  samplingMode: GLTFLoader._GetTextureSamplingMode(context, sampler),
1794
- wrapU: GLTFLoader._GetTextureWrapMode(context + "/wrapS", sampler.wrapS),
1795
- wrapV: GLTFLoader._GetTextureWrapMode(context + "/wrapT", sampler.wrapT)
1794
+ wrapU: GLTFLoader._GetTextureWrapMode("".concat(context, "/wrapS"), sampler.wrapS),
1795
+ wrapV: GLTFLoader._GetTextureWrapMode("".concat(context, "/wrapT"), sampler.wrapT)
1796
1796
  };
1797
1797
  }
1798
1798
  return sampler._data;
@@ -1805,13 +1805,13 @@ var GLTFLoader = /** @class */ (function () {
1805
1805
  */
1806
1806
  GLTFLoader.prototype.loadImageAsync = function (context, image) {
1807
1807
  if (!image._data) {
1808
- this.logOpen(context + " " + (image.name || ""));
1808
+ this.logOpen("".concat(context, " ").concat(image.name || ""));
1809
1809
  if (image.uri) {
1810
- image._data = this.loadUriAsync(context + "/uri", image, image.uri);
1810
+ image._data = this.loadUriAsync("".concat(context, "/uri"), image, image.uri);
1811
1811
  }
1812
1812
  else {
1813
- var bufferView = ArrayItem.Get(context + "/bufferView", this._gltf.bufferViews, image.bufferView);
1814
- image._data = this.loadBufferViewAsync("/bufferViews/" + bufferView.index, bufferView);
1813
+ var bufferView = ArrayItem.Get("".concat(context, "/bufferView"), this._gltf.bufferViews, image.bufferView);
1814
+ image._data = this.loadBufferViewAsync("/bufferViews/".concat(bufferView.index), bufferView);
1815
1815
  }
1816
1816
  this.logClose();
1817
1817
  }
@@ -1831,23 +1831,23 @@ var GLTFLoader = /** @class */ (function () {
1831
1831
  return extensionPromise;
1832
1832
  }
1833
1833
  if (!GLTFLoader._ValidateUri(uri)) {
1834
- throw new Error(context + ": '" + uri + "' is invalid");
1834
+ throw new Error("".concat(context, ": '").concat(uri, "' is invalid"));
1835
1835
  }
1836
1836
  if (IsBase64DataUrl(uri)) {
1837
1837
  var data = new Uint8Array(DecodeBase64UrlToBinary(uri));
1838
- this.log(context + ": Decoded " + uri.substr(0, 64) + "... (" + data.length + " bytes)");
1838
+ this.log("".concat(context, ": Decoded ").concat(uri.substr(0, 64), "... (").concat(data.length, " bytes)"));
1839
1839
  return Promise.resolve(data);
1840
1840
  }
1841
- this.log(context + ": Loading " + uri);
1841
+ this.log("".concat(context, ": Loading ").concat(uri));
1842
1842
  return this._parent.preprocessUrlAsync(this._rootUrl + uri).then(function (url) {
1843
1843
  return new Promise(function (resolve, reject) {
1844
1844
  _this._parent._loadFile(_this._babylonScene, url, function (data) {
1845
1845
  if (!_this._disposed) {
1846
- _this.log(context + ": Loaded " + uri + " (" + data.byteLength + " bytes)");
1846
+ _this.log("".concat(context, ": Loaded ").concat(uri, " (").concat(data.byteLength, " bytes)"));
1847
1847
  resolve(new Uint8Array(data));
1848
1848
  }
1849
1849
  }, true, function (request) {
1850
- reject(new LoadFileError(context + ": Failed to load '" + uri + "'" + (request ? ": " + request.status + " " + request.statusText : ""), request));
1850
+ reject(new LoadFileError("".concat(context, ": Failed to load '").concat(uri, "'").concat(request ? ": " + request.status + " " + request.statusText : ""), request));
1851
1851
  });
1852
1852
  });
1853
1853
  });
@@ -1871,7 +1871,7 @@ var GLTFLoader = /** @class */ (function () {
1871
1871
  case 33648 /* MIRRORED_REPEAT */: return Texture.MIRROR_ADDRESSMODE;
1872
1872
  case 10497 /* REPEAT */: return Texture.WRAP_ADDRESSMODE;
1873
1873
  default:
1874
- Logger.Warn(context + ": Invalid value (" + mode + ")");
1874
+ Logger.Warn("".concat(context, ": Invalid value (").concat(mode, ")"));
1875
1875
  return Texture.WRAP_ADDRESSMODE;
1876
1876
  }
1877
1877
  };
@@ -1888,13 +1888,13 @@ var GLTFLoader = /** @class */ (function () {
1888
1888
  case 9986 /* NEAREST_MIPMAP_LINEAR */: return Texture.LINEAR_NEAREST_MIPLINEAR;
1889
1889
  case 9987 /* LINEAR_MIPMAP_LINEAR */: return Texture.LINEAR_LINEAR_MIPLINEAR;
1890
1890
  default:
1891
- Logger.Warn(context + "/minFilter: Invalid value (" + minFilter + ")");
1891
+ Logger.Warn("".concat(context, "/minFilter: Invalid value (").concat(minFilter, ")"));
1892
1892
  return Texture.LINEAR_LINEAR_MIPLINEAR;
1893
1893
  }
1894
1894
  }
1895
1895
  else {
1896
1896
  if (magFilter !== 9728 /* NEAREST */) {
1897
- Logger.Warn(context + "/magFilter: Invalid value (" + magFilter + ")");
1897
+ Logger.Warn("".concat(context, "/magFilter: Invalid value (").concat(magFilter, ")"));
1898
1898
  }
1899
1899
  switch (minFilter) {
1900
1900
  case 9728 /* NEAREST */: return Texture.NEAREST_NEAREST;
@@ -1904,7 +1904,7 @@ var GLTFLoader = /** @class */ (function () {
1904
1904
  case 9986 /* NEAREST_MIPMAP_LINEAR */: return Texture.NEAREST_NEAREST_MIPLINEAR;
1905
1905
  case 9987 /* LINEAR_MIPMAP_LINEAR */: return Texture.NEAREST_LINEAR_MIPLINEAR;
1906
1906
  default:
1907
- Logger.Warn(context + "/minFilter: Invalid value (" + minFilter + ")");
1907
+ Logger.Warn("".concat(context, "/minFilter: Invalid value (").concat(minFilter, ")"));
1908
1908
  return Texture.NEAREST_NEAREST_MIPNEAREST;
1909
1909
  }
1910
1910
  }
@@ -1917,17 +1917,17 @@ var GLTFLoader = /** @class */ (function () {
1917
1917
  case 5123 /* UNSIGNED_SHORT */: return Uint16Array;
1918
1918
  case 5125 /* UNSIGNED_INT */: return Uint32Array;
1919
1919
  case 5126 /* FLOAT */: return Float32Array;
1920
- default: throw new Error(context + ": Invalid component type " + componentType);
1920
+ default: throw new Error("".concat(context, ": Invalid component type ").concat(componentType));
1921
1921
  }
1922
1922
  };
1923
1923
  GLTFLoader._GetTypedArray = function (context, componentType, bufferView, byteOffset, length) {
1924
1924
  var buffer = bufferView.buffer;
1925
1925
  byteOffset = bufferView.byteOffset + (byteOffset || 0);
1926
- var constructor = GLTFLoader._GetTypedArrayConstructor(context + "/componentType", componentType);
1926
+ var constructor = GLTFLoader._GetTypedArrayConstructor("".concat(context, "/componentType"), componentType);
1927
1927
  var componentTypeLength = VertexBuffer.GetTypeByteLength(componentType);
1928
1928
  if (byteOffset % componentTypeLength !== 0) {
1929
1929
  // HACK: Copy the buffer if byte offset is not a multiple of component type byte length.
1930
- Logger.Warn(context + ": Copying buffer as byte offset (" + byteOffset + ") is not a multiple of component type byte length (" + componentTypeLength + ")");
1930
+ Logger.Warn("".concat(context, ": Copying buffer as byte offset (").concat(byteOffset, ") is not a multiple of component type byte length (").concat(componentTypeLength, ")"));
1931
1931
  return new constructor(buffer.slice(byteOffset, byteOffset + length * componentTypeLength), 0);
1932
1932
  }
1933
1933
  return new constructor(buffer, byteOffset, length);
@@ -1942,7 +1942,7 @@ var GLTFLoader = /** @class */ (function () {
1942
1942
  case "MAT3": return 9;
1943
1943
  case "MAT4": return 16;
1944
1944
  }
1945
- throw new Error(context + ": Invalid type (" + type + ")");
1945
+ throw new Error("".concat(context, ": Invalid type (").concat(type, ")"));
1946
1946
  };
1947
1947
  GLTFLoader._ValidateUri = function (uri) {
1948
1948
  return (Tools.IsBase64(uri) || uri.indexOf("..") === -1);
@@ -1961,7 +1961,7 @@ var GLTFLoader = /** @class */ (function () {
1961
1961
  case 5 /* TRIANGLE_STRIP */: return Material.TriangleStripDrawMode;
1962
1962
  case 6 /* TRIANGLE_FAN */: return Material.TriangleFanDrawMode;
1963
1963
  }
1964
- throw new Error(context + ": Invalid mesh primitive mode (" + mode + ")");
1964
+ throw new Error("".concat(context, ": Invalid mesh primitive mode (").concat(mode, ")"));
1965
1965
  };
1966
1966
  GLTFLoader.prototype._compileMaterialsAsync = function () {
1967
1967
  var _this = this;
@@ -2021,7 +2021,7 @@ var GLTFLoader = /** @class */ (function () {
2021
2021
  for (var _i = 0, _a = this._extensions; _i < _a.length; _i++) {
2022
2022
  var extension = _a[_i];
2023
2023
  if (extension.enabled) {
2024
- var id = extension.name + "." + functionName;
2024
+ var id = "".concat(extension.name, ".").concat(functionName);
2025
2025
  var loaderProperty = property;
2026
2026
  loaderProperty._activeLoaderExtensionFunctions = loaderProperty._activeLoaderExtensionFunctions || {};
2027
2027
  var activeLoaderExtensionFunctions = loaderProperty._activeLoaderExtensionFunctions;
@@ -2109,7 +2109,7 @@ var GLTFLoader = /** @class */ (function () {
2109
2109
  if (!extension) {
2110
2110
  return null;
2111
2111
  }
2112
- return actionAsync(context + "/extensions/" + extensionName, extension);
2112
+ return actionAsync("".concat(context, "/extensions/").concat(extensionName), extension);
2113
2113
  };
2114
2114
  /**
2115
2115
  * Helper method called by a loader extension to load a glTF extra.
@@ -2128,7 +2128,7 @@ var GLTFLoader = /** @class */ (function () {
2128
2128
  if (!extra) {
2129
2129
  return null;
2130
2130
  }
2131
- return actionAsync(context + "/extras/" + extensionName, extra);
2131
+ return actionAsync("".concat(context, "/extras/").concat(extensionName), extra);
2132
2132
  };
2133
2133
  /**
2134
2134
  * Checks for presence of an extension.