@babylonjs/core 6.20.0 → 6.20.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.
Files changed (128) hide show
  1. package/Animations/animation.d.ts +51 -3
  2. package/Animations/animation.js +92 -106
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/animationGroup.d.ts +60 -8
  5. package/Animations/animationGroup.js +132 -29
  6. package/Animations/animationGroup.js.map +1 -1
  7. package/Engines/Extensions/engine.query.js +1 -1
  8. package/Engines/Extensions/engine.query.js.map +1 -1
  9. package/Engines/WebGPU/Extensions/engine.query.js +1 -1
  10. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  11. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -2
  12. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  13. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -0
  14. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  15. package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +3 -1
  16. package/Engines/WebGPU/webgpuOcclusionQuery.js +18 -6
  17. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  18. package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
  19. package/Engines/WebGPU/webgpuQuerySet.js +2 -1
  20. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  21. package/Engines/nativeEngine.js +1 -1
  22. package/Engines/nativeEngine.js.map +1 -1
  23. package/Engines/renderTargetWrapper.d.ts +6 -1
  24. package/Engines/renderTargetWrapper.js +3 -1
  25. package/Engines/renderTargetWrapper.js.map +1 -1
  26. package/Engines/thinEngine.js +2 -2
  27. package/Engines/thinEngine.js.map +1 -1
  28. package/Engines/webgpuEngine.js +5 -3
  29. package/Engines/webgpuEngine.js.map +1 -1
  30. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -0
  31. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  32. package/Materials/Node/nodeMaterial.d.ts +4 -0
  33. package/Materials/Node/nodeMaterial.js +30 -20
  34. package/Materials/Node/nodeMaterial.js.map +1 -1
  35. package/Materials/effect.js +4 -4
  36. package/Materials/effect.js.map +1 -1
  37. package/Maths/math.vector.d.ts +2 -1
  38. package/Maths/math.vector.js +5 -4
  39. package/Maths/math.vector.js.map +1 -1
  40. package/Meshes/Node/Blocks/Instances/instantiateBlock.js +5 -2
  41. package/Meshes/Node/Blocks/Instances/instantiateBlock.js.map +1 -1
  42. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +10 -6
  43. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  44. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +10 -6
  45. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
  46. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +10 -6
  47. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  48. package/Meshes/Node/Blocks/Matrices/alignBlock.js +1 -1
  49. package/Meshes/Node/Blocks/Matrices/alignBlock.js.map +1 -1
  50. package/Meshes/Node/Blocks/Set/setColorsBlock.js +9 -6
  51. package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -1
  52. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +1 -0
  53. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -1
  54. package/Meshes/Node/Blocks/Set/setNormalsBlock.js +9 -6
  55. package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -1
  56. package/Meshes/Node/Blocks/Set/setPositionsBlock.js +7 -4
  57. package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -1
  58. package/Meshes/Node/Blocks/Set/setTangentsBlock.js +9 -6
  59. package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -1
  60. package/Meshes/Node/Blocks/Set/setUVsBlock.js +9 -6
  61. package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -1
  62. package/Meshes/Node/Blocks/Sources/boxBlock.js +3 -1
  63. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  64. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +3 -1
  65. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
  66. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +3 -1
  67. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
  68. package/Meshes/Node/Blocks/Sources/discBlock.js +3 -1
  69. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
  70. package/Meshes/Node/Blocks/Sources/gridBlock.js +3 -1
  71. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  72. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +3 -1
  73. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
  74. package/Meshes/Node/Blocks/Sources/meshBlock.js +4 -1
  75. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
  76. package/Meshes/Node/Blocks/Sources/planeBlock.js +3 -1
  77. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  78. package/Meshes/Node/Blocks/Sources/sphereBlock.js +3 -1
  79. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
  80. package/Meshes/Node/Blocks/Sources/torusBlock.js +3 -1
  81. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
  82. package/Meshes/Node/Blocks/Teleport/teleportInBlock.js +1 -0
  83. package/Meshes/Node/Blocks/Teleport/teleportInBlock.js.map +1 -1
  84. package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js +1 -0
  85. package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -1
  86. package/Meshes/Node/Blocks/debugBlock.js +1 -0
  87. package/Meshes/Node/Blocks/debugBlock.js.map +1 -1
  88. package/Meshes/Node/Blocks/geometryCollectionBlock.js +1 -0
  89. package/Meshes/Node/Blocks/geometryCollectionBlock.js.map +1 -1
  90. package/Meshes/Node/Blocks/geometryInputBlock.js +1 -0
  91. package/Meshes/Node/Blocks/geometryInputBlock.js.map +1 -1
  92. package/Meshes/Node/Blocks/geometryOptimizeBlock.js +2 -1
  93. package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
  94. package/Meshes/Node/Blocks/geometryTransformBlock.js +1 -0
  95. package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -1
  96. package/Meshes/Node/Blocks/matrixComposeBlock.js +4 -1
  97. package/Meshes/Node/Blocks/matrixComposeBlock.js.map +1 -1
  98. package/Meshes/Node/Blocks/mergeGeometryBlock.js +1 -0
  99. package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -1
  100. package/Meshes/Node/Blocks/noiseBlock.js +1 -1
  101. package/Meshes/Node/Blocks/noiseBlock.js.map +1 -1
  102. package/Meshes/Node/Blocks/randomBlock.d.ts +12 -0
  103. package/Meshes/Node/Blocks/randomBlock.js +42 -1
  104. package/Meshes/Node/Blocks/randomBlock.js.map +1 -1
  105. package/Meshes/Node/nodeGeometry.js +5 -0
  106. package/Meshes/Node/nodeGeometry.js.map +1 -1
  107. package/Meshes/Node/nodeGeometryBlock.d.ts +8 -3
  108. package/Meshes/Node/nodeGeometryBlock.js +18 -10
  109. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  110. package/Meshes/Node/nodeGeometryBuildState.d.ts +37 -3
  111. package/Meshes/Node/nodeGeometryBuildState.js +64 -6
  112. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  113. package/Meshes/linesMesh.js +2 -2
  114. package/Meshes/linesMesh.js.map +1 -1
  115. package/Meshes/mesh.vertexData.js +28 -26
  116. package/Meshes/mesh.vertexData.js.map +1 -1
  117. package/Physics/v2/physicsBody.d.ts +1 -0
  118. package/Physics/v2/physicsBody.js +5 -0
  119. package/Physics/v2/physicsBody.js.map +1 -1
  120. package/Physics/v2/physicsShape.d.ts +1 -0
  121. package/Physics/v2/physicsShape.js +5 -0
  122. package/Physics/v2/physicsShape.js.map +1 -1
  123. package/Probes/reflectionProbe.d.ts +2 -1
  124. package/Probes/reflectionProbe.js +4 -1
  125. package/Probes/reflectionProbe.js.map +1 -1
  126. package/Shaders/ShadersInclude/pbrDebug.js +3 -0
  127. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  128. package/package.json +1 -1
@@ -498,6 +498,10 @@ export declare class NodeMaterial extends PushMaterial {
498
498
  * @param shareEffect defines if the clone material should share the same effect (default is false)
499
499
  */
500
500
  clone(name: string, shareEffect?: boolean): NodeMaterial;
501
+ /**
502
+ * Awaits for all the material textures to be ready before resolving the returned promise.
503
+ */
504
+ whenTexturesReadyAsync(): Promise<void[]>;
501
505
  /**
502
506
  * Creates a node material from parsed material data
503
507
  * @param source defines the JSON representation of the material
@@ -1660,6 +1660,27 @@ export class NodeMaterial extends PushMaterial {
1660
1660
  clone.build(false, !shareEffect);
1661
1661
  return clone;
1662
1662
  }
1663
+ /**
1664
+ * Awaits for all the material textures to be ready before resolving the returned promise.
1665
+ */
1666
+ whenTexturesReadyAsync() {
1667
+ // Ensures all textures are ready to render.
1668
+ const textureReadyPromises = [];
1669
+ this.getActiveTextures().forEach((texture) => {
1670
+ const internalTexture = texture.getInternalTexture();
1671
+ if (internalTexture && !internalTexture.isReady) {
1672
+ textureReadyPromises.push(new Promise((textureResolve, textureReject) => {
1673
+ internalTexture.onLoadedObservable.addOnce(() => {
1674
+ textureResolve();
1675
+ });
1676
+ internalTexture.onErrorObservable.addOnce((e) => {
1677
+ textureReject(e);
1678
+ });
1679
+ }));
1680
+ }
1681
+ });
1682
+ return Promise.all(textureReadyPromises);
1683
+ }
1663
1684
  /**
1664
1685
  * Creates a node material from parsed material data
1665
1686
  * @param source defines the JSON representation of the material
@@ -1728,30 +1749,19 @@ export class NodeMaterial extends PushMaterial {
1728
1749
  catch (err) {
1729
1750
  reject(err);
1730
1751
  }
1731
- // Ensures all textures are ready to render.
1732
- const textureReadyPromises = [];
1733
1752
  if (waitForTextureReadyness) {
1734
- nodeMaterial.getActiveTextures().forEach((texture) => {
1735
- const internalTexture = texture.getInternalTexture();
1736
- if (internalTexture && !internalTexture.isReady) {
1737
- textureReadyPromises.push(new Promise((textureResolve, textureReject) => {
1738
- internalTexture.onLoadedObservable.addOnce(() => {
1739
- textureResolve();
1740
- });
1741
- internalTexture.onErrorObservable.addOnce((e) => {
1742
- textureReject(e);
1743
- });
1744
- }));
1745
- }
1753
+ nodeMaterial
1754
+ .whenTexturesReadyAsync()
1755
+ .then(() => {
1756
+ resolve(nodeMaterial);
1757
+ })
1758
+ .catch((err) => {
1759
+ reject(err);
1746
1760
  });
1747
1761
  }
1748
- Promise.all(textureReadyPromises)
1749
- .then(() => {
1762
+ else {
1750
1763
  resolve(nodeMaterial);
1751
- })
1752
- .catch((err) => {
1753
- reject(err);
1754
- });
1764
+ }
1755
1765
  }
1756
1766
  else {
1757
1767
  reject("Unable to load the snippet " + snippetId);