@babylonjs/core 5.38.0 → 5.40.0

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 (63) hide show
  1. package/Audio/audioSceneComponent.d.ts +11 -6
  2. package/Audio/audioSceneComponent.js +78 -52
  3. package/Audio/audioSceneComponent.js.map +1 -1
  4. package/Audio/sound.js +6 -4
  5. package/Audio/sound.js.map +1 -1
  6. package/Culling/ray.d.ts +1 -1
  7. package/Culling/ray.js.map +1 -1
  8. package/Engines/Extensions/engine.renderTarget.js +3 -3
  9. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  10. package/Engines/nativeEngine.js +2 -1
  11. package/Engines/nativeEngine.js.map +1 -1
  12. package/Engines/thinEngine.js +2 -2
  13. package/Engines/thinEngine.js.map +1 -1
  14. package/Gizmos/gizmo.d.ts +1 -0
  15. package/Gizmos/gizmo.js +1 -0
  16. package/Gizmos/gizmo.js.map +1 -1
  17. package/Gizmos/positionGizmo.d.ts +4 -0
  18. package/Gizmos/positionGizmo.js +4 -0
  19. package/Gizmos/positionGizmo.js.map +1 -1
  20. package/Gizmos/rotationGizmo.d.ts +4 -0
  21. package/Gizmos/rotationGizmo.js +4 -0
  22. package/Gizmos/rotationGizmo.js.map +1 -1
  23. package/Layers/glowLayer.d.ts +3 -3
  24. package/Layers/glowLayer.js +2 -1
  25. package/Layers/glowLayer.js.map +1 -1
  26. package/Materials/Node/Blocks/index.d.ts +2 -0
  27. package/Materials/Node/Blocks/index.js +2 -0
  28. package/Materials/Node/Blocks/index.js.map +1 -1
  29. package/Materials/Node/Blocks/matrixDeterminantBlock.d.ts +27 -0
  30. package/Materials/Node/Blocks/matrixDeterminantBlock.js +46 -0
  31. package/Materials/Node/Blocks/matrixDeterminantBlock.js.map +1 -0
  32. package/Materials/Node/Blocks/matrixTransposeBlock.d.ts +27 -0
  33. package/Materials/Node/Blocks/matrixTransposeBlock.js +46 -0
  34. package/Materials/Node/Blocks/matrixTransposeBlock.js.map +1 -0
  35. package/Materials/Textures/renderTargetTexture.d.ts +32 -28
  36. package/Materials/Textures/renderTargetTexture.js +13 -9
  37. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  38. package/Materials/materialPluginManager.js +25 -4
  39. package/Materials/materialPluginManager.js.map +1 -1
  40. package/Maths/math.vector.d.ts +101 -9
  41. package/Maths/math.vector.js +101 -9
  42. package/Maths/math.vector.js.map +1 -1
  43. package/Meshes/linesMesh.d.ts +3 -1
  44. package/Meshes/linesMesh.js +8 -2
  45. package/Meshes/linesMesh.js.map +1 -1
  46. package/Meshes/subMesh.js +2 -2
  47. package/Meshes/subMesh.js.map +1 -1
  48. package/Misc/screenshotTools.d.ts +5 -2
  49. package/Misc/screenshotTools.js +7 -3
  50. package/Misc/screenshotTools.js.map +1 -1
  51. package/Particles/solidParticleSystem.d.ts +67 -63
  52. package/Particles/solidParticleSystem.js.map +1 -1
  53. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +5 -0
  54. package/PostProcesses/volumetricLightScatteringPostProcess.js +9 -1
  55. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  56. package/Rendering/boundingBoxRenderer.js +2 -0
  57. package/Rendering/boundingBoxRenderer.js.map +1 -1
  58. package/Rendering/depthRendererSceneComponent.d.ts +2 -1
  59. package/Rendering/depthRendererSceneComponent.js +2 -2
  60. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  61. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +3 -3
  62. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  63. package/package.json +1 -1
@@ -2632,20 +2632,25 @@ export declare class Quaternion {
2632
2632
  }
2633
2633
  /**
2634
2634
  * Class used to store matrix data (4x4)
2635
- * Note on matrix definitions in Babylon.js for setting values directly rather than using one of the methods available.
2635
+ * Note on matrix definitions in Babylon.js for setting values directly
2636
+ * rather than using one of the methods available.
2636
2637
  * Matrix size is given by rows x columns.
2637
2638
  * A Vector3 is a 1 X 3 matrix [x, y, z].
2639
+ *
2638
2640
  * In Babylon.js multiplying a 1 x 3 matrix by a 4 x 4 matrix
2639
- * is done using BABYLON.Vector4.TransformCoordinates(vector3, matrix)
2640
- * and extending the passed Vector3 to a Vector4 [x, y, z, w] with w = 1.
2641
- * The multiplication has this form
2642
- * [x, y, z, w] |m0, m1, m2, m3 |
2643
- * |m4, m5, m6, m7 |
2644
- * |m8, m9, m10, m11|
2645
- * |m12, m13, m14, m15|
2641
+ * is done using BABYLON.Vector4.TransformCoordinates(Vector3, Matrix).
2642
+ * and extending the passed Vector3 to a Vector4, V = [x, y, z, 1].
2643
+ * Let M be a matrix with elements m(row, column), so that
2644
+ * m(2, 3) is the element in row 2 column 3 of M.
2646
2645
  *
2647
- * = [xm0 + ym4 + zm8 + wm12, xm1 + ym5 + zm9 + wm13, xm2 + ym6 + zm10 + wm14, xm3 + ym7 + zm11 + wm15]
2646
+ * Multiplication is of the form VM and has the resulting Vector4
2647
+ * VM = [xm(0, 0) + ym(1, 0) + zm(2, 0) + m(3, 0), xm(0, 1) + ym(1, 1) + zm(2, 1) + m(3, 1), xm(0, 2) + ym(1, 2) + zm(2, 2) + m(3, 2), xm(0, 3) + ym(1, 3) + zm(2, 3) + m(3, 3)].
2648
+ * On the web you will find many examples that use the opposite convention of MV,
2649
+ * in which case to make use of the examples you will need to transpose the matrix.
2648
2650
  *
2651
+ * Example Playground - Overview Linear Algebra - https://playground.babylonjs.com/#AV9X17
2652
+ * Example Playground - Overview Transformation - https://playground.babylonjs.com/#AV9X17#1
2653
+ * Example Playground - Overview Projection - https://playground.babylonjs.com/#AV9X17#2
2649
2654
  */
2650
2655
  export declare class Matrix {
2651
2656
  /**
@@ -2690,21 +2695,25 @@ export declare class Matrix {
2690
2695
  isIdentityAs3x2(): boolean;
2691
2696
  /**
2692
2697
  * Gets the determinant of the matrix
2698
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#34
2693
2699
  * @returns the matrix determinant
2694
2700
  */
2695
2701
  determinant(): number;
2696
2702
  /**
2697
2703
  * Returns the matrix as a Float32Array or Array<number>
2704
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#49
2698
2705
  * @returns the matrix underlying array
2699
2706
  */
2700
2707
  toArray(): DeepImmutable<Float32Array | Array<number>>;
2701
2708
  /**
2702
2709
  * Returns the matrix as a Float32Array or Array<number>
2710
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#114
2703
2711
  * @returns the matrix underlying array.
2704
2712
  */
2705
2713
  asArray(): DeepImmutable<Float32Array | Array<number>>;
2706
2714
  /**
2707
2715
  * Inverts the current matrix in place
2716
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#118
2708
2717
  * @returns the current inverted matrix
2709
2718
  */
2710
2719
  invert(): this;
@@ -2715,12 +2724,14 @@ export declare class Matrix {
2715
2724
  reset(): this;
2716
2725
  /**
2717
2726
  * Adds the current matrix with a second one
2727
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#44
2718
2728
  * @param other defines the matrix to add
2719
2729
  * @returns a new matrix as the addition of the current matrix and the given one
2720
2730
  */
2721
2731
  add(other: DeepImmutable<Matrix>): this;
2722
2732
  /**
2723
2733
  * Sets the given matrix "result" to the addition of the current matrix and the given one
2734
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#45
2724
2735
  * @param other defines the matrix to add
2725
2736
  * @param result defines the target matrix
2726
2737
  * @returns result input
@@ -2728,18 +2739,21 @@ export declare class Matrix {
2728
2739
  addToRef<T extends Matrix>(other: DeepImmutable<Matrix>, result: T): T;
2729
2740
  /**
2730
2741
  * Adds in place the given matrix to the current matrix
2742
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#46
2731
2743
  * @param other defines the second operand
2732
2744
  * @returns the current updated matrix
2733
2745
  */
2734
2746
  addToSelf(other: DeepImmutable<Matrix>): this;
2735
2747
  /**
2736
2748
  * Sets the given matrix to the current inverted Matrix
2749
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#119
2737
2750
  * @param other defines the target matrix
2738
2751
  * @returns result input
2739
2752
  */
2740
2753
  invertToRef<T extends Matrix>(other: T): T;
2741
2754
  /**
2742
2755
  * add a value at the specified position in the current Matrix
2756
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#47
2743
2757
  * @param index the index of the value within the matrix. between 0 and 15.
2744
2758
  * @param value the value to be added
2745
2759
  * @returns the current updated matrix
@@ -2754,6 +2768,7 @@ export declare class Matrix {
2754
2768
  multiplyAtIndex(index: number, value: number): this;
2755
2769
  /**
2756
2770
  * Inserts the translation vector (using 3 floats) in the current matrix
2771
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#120
2757
2772
  * @param x defines the 1st component of the translation
2758
2773
  * @param y defines the 2nd component of the translation
2759
2774
  * @param z defines the 3rd component of the translation
@@ -2762,6 +2777,8 @@ export declare class Matrix {
2762
2777
  setTranslationFromFloats(x: number, y: number, z: number): this;
2763
2778
  /**
2764
2779
  * Adds the translation vector (using 3 floats) in the current matrix
2780
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#20
2781
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#48
2765
2782
  * @param x defines the 1st component of the translation
2766
2783
  * @param y defines the 2nd component of the translation
2767
2784
  * @param z defines the 3rd component of the translation
@@ -2770,17 +2787,20 @@ export declare class Matrix {
2770
2787
  addTranslationFromFloats(x: number, y: number, z: number): this;
2771
2788
  /**
2772
2789
  * Inserts the translation vector in the current matrix
2790
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#121
2773
2791
  * @param vector3 defines the translation to insert
2774
2792
  * @returns the current updated matrix
2775
2793
  */
2776
2794
  setTranslation(vector3: DeepImmutable<Vector3>): this;
2777
2795
  /**
2778
2796
  * Gets the translation value of the current matrix
2797
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#122
2779
2798
  * @returns a new Vector3 as the extracted translation from the matrix
2780
2799
  */
2781
2800
  getTranslation(): Vector3;
2782
2801
  /**
2783
2802
  * Fill a Vector3 with the extracted translation from the matrix
2803
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#123
2784
2804
  * @param result defines the Vector3 where to store the translation
2785
2805
  * @returns the current matrix
2786
2806
  */
@@ -2792,6 +2812,7 @@ export declare class Matrix {
2792
2812
  removeRotationAndScaling(): this;
2793
2813
  /**
2794
2814
  * Multiply two matrices
2815
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#15
2795
2816
  * A.multiply(B) means apply B to A so result is B x A
2796
2817
  * @param other defines the second operand
2797
2818
  * @returns a new matrix set with the multiplication result of the current Matrix and the given one
@@ -2799,6 +2820,7 @@ export declare class Matrix {
2799
2820
  multiply(other: DeepImmutable<Matrix>): this;
2800
2821
  /**
2801
2822
  * Copy the current matrix from the given one
2823
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#21
2802
2824
  * @param other defines the source matrix
2803
2825
  * @returns the current updated matrix
2804
2826
  */
@@ -2813,6 +2835,7 @@ export declare class Matrix {
2813
2835
  /**
2814
2836
  * Sets the given matrix "result" with the multiplication result of the current Matrix and the given one
2815
2837
  * A.multiplyToRef(B, R) means apply B to A and store in R and R = B x A
2838
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#16
2816
2839
  * @param other defines the second operand
2817
2840
  * @param result defines the matrix where to store the multiplication
2818
2841
  * @returns result input
@@ -2834,6 +2857,7 @@ export declare class Matrix {
2834
2857
  equals(value: DeepImmutable<Matrix>): boolean;
2835
2858
  /**
2836
2859
  * Clone the current matrix
2860
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#18
2837
2861
  * @returns a new matrix from the current matrix
2838
2862
  */
2839
2863
  clone(): this;
@@ -2849,12 +2873,14 @@ export declare class Matrix {
2849
2873
  getHashCode(): number;
2850
2874
  /**
2851
2875
  * Decomposes the current Matrix into a translation, rotation and scaling components of the provided node
2876
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#13
2852
2877
  * @param node the node to decompose the matrix to
2853
2878
  * @returns true if operation was successful
2854
2879
  */
2855
2880
  decomposeToTransformNode(node: TransformNode): boolean;
2856
2881
  /**
2857
2882
  * Decomposes the current Matrix into a translation, rotation and scaling components
2883
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#12
2858
2884
  * @param scale defines the scale vector3 given as a reference to update
2859
2885
  * @param rotation defines the rotation quaternion given as a reference to update
2860
2886
  * @param translation defines the translation vector3 given as a reference to update
@@ -2864,12 +2890,14 @@ export declare class Matrix {
2864
2890
  decompose(scale?: Vector3, rotation?: Quaternion, translation?: Vector3, preserveScalingNode?: TransformNode): boolean;
2865
2891
  /**
2866
2892
  * Gets specific row of the matrix
2893
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
2867
2894
  * @param index defines the number of the row to get
2868
2895
  * @returns the index-th row of the current matrix as a new Vector4
2869
2896
  */
2870
2897
  getRow(index: number): Nullable<Vector4>;
2871
2898
  /**
2872
2899
  * Gets specific row of the matrix to ref
2900
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
2873
2901
  * @param index defines the number of the row to get
2874
2902
  * @param rowVector vector to store the index-th row of the current matrix
2875
2903
  * @returns result input
@@ -2877,6 +2905,7 @@ export declare class Matrix {
2877
2905
  getRowToRef<T extends Vector4>(index: number, rowVector: T): T;
2878
2906
  /**
2879
2907
  * Sets the index-th row of the current matrix to the vector4 values
2908
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
2880
2909
  * @param index defines the number of the row to set
2881
2910
  * @param row defines the target vector4
2882
2911
  * @returns the updated current matrix
@@ -2884,17 +2913,20 @@ export declare class Matrix {
2884
2913
  setRow(index: number, row: Vector4): this;
2885
2914
  /**
2886
2915
  * Compute the transpose of the matrix
2916
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#40
2887
2917
  * @returns the new transposed matrix
2888
2918
  */
2889
2919
  transpose(): this;
2890
2920
  /**
2891
2921
  * Compute the transpose of the matrix and store it in a given matrix
2922
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#41
2892
2923
  * @param result defines the target matrix
2893
2924
  * @returns result input
2894
2925
  */
2895
2926
  transposeToRef<T extends Matrix>(result: T): T;
2896
2927
  /**
2897
2928
  * Sets the index-th row of the current matrix with the given 4 x float values
2929
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
2898
2930
  * @param index defines the row index
2899
2931
  * @param x defines the x component to set
2900
2932
  * @param y defines the y component to set
@@ -2925,6 +2957,7 @@ export declare class Matrix {
2925
2957
  scaleAndAddToRef<T extends Matrix>(scale: number, result: T): T;
2926
2958
  /**
2927
2959
  * Writes to the given matrix a normal matrix, computed from this one (using values from identity matrix for fourth row and column).
2960
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#17
2928
2961
  * @param ref matrix to store the result
2929
2962
  */
2930
2963
  toNormalMatrix<T extends Matrix>(ref: T): T;
@@ -2949,6 +2982,7 @@ export declare class Matrix {
2949
2982
  toggleProjectionMatrixHandInPlace(): this;
2950
2983
  /**
2951
2984
  * Creates a matrix from an array
2985
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#42
2952
2986
  * @param array defines the source array
2953
2987
  * @param offset defines an offset in the source array
2954
2988
  * @returns a new Matrix set from the starting index of the given array
@@ -2956,6 +2990,7 @@ export declare class Matrix {
2956
2990
  static FromArray(array: DeepImmutable<ArrayLike<number>>, offset?: number): Matrix;
2957
2991
  /**
2958
2992
  * Copy the content of an array into a given matrix
2993
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#43
2959
2994
  * @param array defines the source array
2960
2995
  * @param offset defines an offset in the source array
2961
2996
  * @param result defines the target matrix
@@ -2964,6 +2999,7 @@ export declare class Matrix {
2964
2999
  static FromArrayToRef<T extends Matrix>(array: DeepImmutable<ArrayLike<number>>, offset: number, result: T): T;
2965
3000
  /**
2966
3001
  * Stores an array into a matrix after having multiplied each component by a given factor
3002
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#50
2967
3003
  * @param array defines the source array
2968
3004
  * @param offset defines the offset in the source array
2969
3005
  * @param scale defines the scaling factor
@@ -3020,6 +3056,7 @@ export declare class Matrix {
3020
3056
  static FromValues(initialM11: number, initialM12: number, initialM13: number, initialM14: number, initialM21: number, initialM22: number, initialM23: number, initialM24: number, initialM31: number, initialM32: number, initialM33: number, initialM34: number, initialM41: number, initialM42: number, initialM43: number, initialM44: number): Matrix;
3021
3057
  /**
3022
3058
  * Creates a new matrix composed by merging scale (vector3), rotation (quaternion) and translation (vector3)
3059
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#24
3023
3060
  * @param scale defines the scale vector3
3024
3061
  * @param rotation defines the rotation quaternion
3025
3062
  * @param translation defines the translation vector3
@@ -3028,6 +3065,7 @@ export declare class Matrix {
3028
3065
  static Compose(scale: DeepImmutable<Vector3>, rotation: DeepImmutable<Quaternion>, translation: DeepImmutable<Vector3>): Matrix;
3029
3066
  /**
3030
3067
  * Sets a matrix to a value composed by merging scale (vector3), rotation (quaternion) and translation (vector3)
3068
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#25
3031
3069
  * @param scale defines the scale vector3
3032
3070
  * @param rotation defines the rotation quaternion
3033
3071
  * @param translation defines the translation vector3
@@ -3053,18 +3091,21 @@ export declare class Matrix {
3053
3091
  static Zero(): Matrix;
3054
3092
  /**
3055
3093
  * Creates a new rotation matrix for "angle" radians around the X axis
3094
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#97
3056
3095
  * @param angle defines the angle (in radians) to use
3057
3096
  * @returns the new matrix
3058
3097
  */
3059
3098
  static RotationX(angle: number): Matrix;
3060
3099
  /**
3061
3100
  * Creates a new matrix as the invert of a given matrix
3101
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#124
3062
3102
  * @param source defines the source matrix
3063
3103
  * @returns the new matrix
3064
3104
  */
3065
3105
  static Invert<T extends Matrix>(source: DeepImmutable<T>): T;
3066
3106
  /**
3067
3107
  * Creates a new rotation matrix for "angle" radians around the X axis and stores it in a given matrix
3108
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#98
3068
3109
  * @param angle defines the angle (in radians) to use
3069
3110
  * @param result defines the target matrix
3070
3111
  * @returns result input
@@ -3072,12 +3113,14 @@ export declare class Matrix {
3072
3113
  static RotationXToRef<T extends Matrix>(angle: number, result: T): T;
3073
3114
  /**
3074
3115
  * Creates a new rotation matrix for "angle" radians around the Y axis
3116
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#99
3075
3117
  * @param angle defines the angle (in radians) to use
3076
3118
  * @returns the new matrix
3077
3119
  */
3078
3120
  static RotationY(angle: number): Matrix;
3079
3121
  /**
3080
3122
  * Creates a new rotation matrix for "angle" radians around the Y axis and stores it in a given matrix
3123
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#100
3081
3124
  * @param angle defines the angle (in radians) to use
3082
3125
  * @param result defines the target matrix
3083
3126
  * @returns result input
@@ -3085,12 +3128,14 @@ export declare class Matrix {
3085
3128
  static RotationYToRef<T extends Matrix>(angle: number, result: T): T;
3086
3129
  /**
3087
3130
  * Creates a new rotation matrix for "angle" radians around the Z axis
3131
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#101
3088
3132
  * @param angle defines the angle (in radians) to use
3089
3133
  * @returns the new matrix
3090
3134
  */
3091
3135
  static RotationZ(angle: number): Matrix;
3092
3136
  /**
3093
3137
  * Creates a new rotation matrix for "angle" radians around the Z axis and stores it in a given matrix
3138
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#102
3094
3139
  * @param angle defines the angle (in radians) to use
3095
3140
  * @param result defines the target matrix
3096
3141
  * @returns result input
@@ -3098,6 +3143,7 @@ export declare class Matrix {
3098
3143
  static RotationZToRef<T extends Matrix>(angle: number, result: T): T;
3099
3144
  /**
3100
3145
  * Creates a new rotation matrix for "angle" radians around the given axis
3146
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#96
3101
3147
  * @param axis defines the axis to use
3102
3148
  * @param angle defines the angle (in radians) to use
3103
3149
  * @returns the new matrix
@@ -3105,6 +3151,7 @@ export declare class Matrix {
3105
3151
  static RotationAxis(axis: DeepImmutable<Vector3>, angle: number): Matrix;
3106
3152
  /**
3107
3153
  * Creates a new rotation matrix for "angle" radians around the given axis and stores it in a given matrix
3154
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#94
3108
3155
  * @param axis defines the axis to use
3109
3156
  * @param angle defines the angle (in radians) to use
3110
3157
  * @param result defines the target matrix
@@ -3114,6 +3161,7 @@ export declare class Matrix {
3114
3161
  /**
3115
3162
  * Takes normalised vectors and returns a rotation matrix to align "from" with "to".
3116
3163
  * Taken from http://www.iquilezles.org/www/articles/noacos/noacos.htm
3164
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#93
3117
3165
  * @param from defines the vector to align
3118
3166
  * @param to defines the vector to align to
3119
3167
  * @param result defines the target matrix
@@ -3122,6 +3170,8 @@ export declare class Matrix {
3122
3170
  static RotationAlignToRef<T extends Matrix>(from: DeepImmutable<Vector3>, to: DeepImmutable<Vector3>, result: T): T;
3123
3171
  /**
3124
3172
  * Creates a rotation matrix
3173
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#103
3174
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#105
3125
3175
  * @param yaw defines the yaw angle in radians (Y axis)
3126
3176
  * @param pitch defines the pitch angle in radians (X axis)
3127
3177
  * @param roll defines the roll angle in radians (Z axis)
@@ -3130,6 +3180,7 @@ export declare class Matrix {
3130
3180
  static RotationYawPitchRoll(yaw: number, pitch: number, roll: number): Matrix;
3131
3181
  /**
3132
3182
  * Creates a rotation matrix and stores it in a given matrix
3183
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#104
3133
3184
  * @param yaw defines the yaw angle in radians (Y axis)
3134
3185
  * @param pitch defines the pitch angle in radians (X axis)
3135
3186
  * @param roll defines the roll angle in radians (Z axis)
@@ -3139,6 +3190,7 @@ export declare class Matrix {
3139
3190
  static RotationYawPitchRollToRef<T extends Matrix>(yaw: number, pitch: number, roll: number, result: T): T;
3140
3191
  /**
3141
3192
  * Creates a scaling matrix
3193
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#107
3142
3194
  * @param x defines the scale factor on X axis
3143
3195
  * @param y defines the scale factor on Y axis
3144
3196
  * @param z defines the scale factor on Z axis
@@ -3147,6 +3199,7 @@ export declare class Matrix {
3147
3199
  static Scaling(x: number, y: number, z: number): Matrix;
3148
3200
  /**
3149
3201
  * Creates a scaling matrix and stores it in a given matrix
3202
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#108
3150
3203
  * @param x defines the scale factor on X axis
3151
3204
  * @param y defines the scale factor on Y axis
3152
3205
  * @param z defines the scale factor on Z axis
@@ -3156,6 +3209,7 @@ export declare class Matrix {
3156
3209
  static ScalingToRef<T extends Matrix>(x: number, y: number, z: number, result: T): T;
3157
3210
  /**
3158
3211
  * Creates a translation matrix
3212
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#109
3159
3213
  * @param x defines the translation on X axis
3160
3214
  * @param y defines the translation on Y axis
3161
3215
  * @param z defines the translationon Z axis
@@ -3164,6 +3218,7 @@ export declare class Matrix {
3164
3218
  static Translation(x: number, y: number, z: number): Matrix;
3165
3219
  /**
3166
3220
  * Creates a translation matrix and stores it in a given matrix
3221
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#110
3167
3222
  * @param x defines the translation on X axis
3168
3223
  * @param y defines the translation on Y axis
3169
3224
  * @param z defines the translationon Z axis
@@ -3173,6 +3228,7 @@ export declare class Matrix {
3173
3228
  static TranslationToRef<T extends Matrix>(x: number, y: number, z: number, result: T): T;
3174
3229
  /**
3175
3230
  * Returns a new Matrix whose values are the interpolated values for "gradient" (float) between the ones of the matrices "startValue" and "endValue".
3231
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#55
3176
3232
  * @param startValue defines the start value
3177
3233
  * @param endValue defines the end value
3178
3234
  * @param gradient defines the gradient factor
@@ -3181,6 +3237,7 @@ export declare class Matrix {
3181
3237
  static Lerp<T extends Matrix>(startValue: DeepImmutable<T>, endValue: DeepImmutable<Matrix>, gradient: number): T;
3182
3238
  /**
3183
3239
  * Set the given matrix "result" as the interpolated values for "gradient" (float) between the ones of the matrices "startValue" and "endValue".
3240
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#54
3184
3241
  * @param startValue defines the start value
3185
3242
  * @param endValue defines the end value
3186
3243
  * @param gradient defines the gradient factor
@@ -3193,6 +3250,8 @@ export declare class Matrix {
3193
3250
  * * decomposing the the "startValue" and "endValue" matrices into their respective scale, rotation and translation matrices
3194
3251
  * * interpolating for "gradient" (float) the values between each of these decomposed matrices between the start and the end
3195
3252
  * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices
3253
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#22
3254
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#51
3196
3255
  * @param startValue defines the first matrix
3197
3256
  * @param endValue defines the second matrix
3198
3257
  * @param gradient defines the gradient between the two matrices
@@ -3204,6 +3263,8 @@ export declare class Matrix {
3204
3263
  * * decomposing the the "startValue" and "endValue" matrices into their respective scale, rotation and translation matrices
3205
3264
  * * interpolating for "gradient" (float) the values between each of these decomposed matrices between the start and the end
3206
3265
  * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices
3266
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#23
3267
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#53
3207
3268
  * @param startValue defines the first matrix
3208
3269
  * @param endValue defines the second matrix
3209
3270
  * @param gradient defines the gradient between the two matrices
@@ -3214,6 +3275,8 @@ export declare class Matrix {
3214
3275
  /**
3215
3276
  * Creates a new matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.
3216
3277
  * This function generates a matrix suitable for a left handed coordinate system
3278
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#58
3279
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#59
3217
3280
  * @param eye defines the final position of the entity
3218
3281
  * @param target defines where the entity should look at
3219
3282
  * @param up defines the up vector for the entity
@@ -3223,6 +3286,8 @@ export declare class Matrix {
3223
3286
  /**
3224
3287
  * Sets the given "result" Matrix to a matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.
3225
3288
  * This function generates a matrix suitable for a left handed coordinate system
3289
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#60
3290
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#61
3226
3291
  * @param eye defines the final position of the entity
3227
3292
  * @param target defines where the entity should look at
3228
3293
  * @param up defines the up vector for the entity
@@ -3233,6 +3298,8 @@ export declare class Matrix {
3233
3298
  /**
3234
3299
  * Creates a new matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.
3235
3300
  * This function generates a matrix suitable for a right handed coordinate system
3301
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#62
3302
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#63
3236
3303
  * @param eye defines the final position of the entity
3237
3304
  * @param target defines where the entity should look at
3238
3305
  * @param up defines the up vector for the entity
@@ -3242,6 +3309,8 @@ export declare class Matrix {
3242
3309
  /**
3243
3310
  * Sets the given "result" Matrix to a matrix that transforms vertices from world space to camera space. It takes three vectors as arguments that together describe the position and orientation of the camera.
3244
3311
  * This function generates a matrix suitable for a right handed coordinate system
3312
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#64
3313
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#65
3245
3314
  * @param eye defines the final position of the entity
3246
3315
  * @param target defines where the entity should look at
3247
3316
  * @param up defines the up vector for the entity
@@ -3252,6 +3321,7 @@ export declare class Matrix {
3252
3321
  /**
3253
3322
  * Creates a new matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)
3254
3323
  * This function generates a matrix suitable for a left handed coordinate system
3324
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#66
3255
3325
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
3256
3326
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
3257
3327
  * @returns the new matrix
@@ -3260,6 +3330,7 @@ export declare class Matrix {
3260
3330
  /**
3261
3331
  * Sets the given "result" Matrix to a matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)
3262
3332
  * This function generates a matrix suitable for a left handed coordinate system
3333
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#67
3263
3334
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
3264
3335
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
3265
3336
  * @param result defines the target matrix
@@ -3269,6 +3340,7 @@ export declare class Matrix {
3269
3340
  /**
3270
3341
  * Creates a new matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)
3271
3342
  * This function generates a matrix suitable for a right handed coordinate system
3343
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#68
3272
3344
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
3273
3345
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
3274
3346
  * @returns the new matrix
@@ -3277,6 +3349,7 @@ export declare class Matrix {
3277
3349
  /**
3278
3350
  * Sets the given "result" Matrix to a matrix that transforms vertices from world space to camera space. It takes two vectors as arguments that together describe the orientation of the camera. The position is assumed to be at the origin (0,0,0)
3279
3351
  * This function generates a matrix suitable for a right handed coordinate system
3352
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#69
3280
3353
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
3281
3354
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
3282
3355
  * @param result defines the target matrix
@@ -3285,6 +3358,7 @@ export declare class Matrix {
3285
3358
  static LookDirectionRHToRef<T extends Matrix>(forward: DeepImmutable<Vector3>, up: DeepImmutable<Vector3>, result: T): T;
3286
3359
  /**
3287
3360
  * Create a left-handed orthographic projection matrix
3361
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#70
3288
3362
  * @param width defines the viewport width
3289
3363
  * @param height defines the viewport height
3290
3364
  * @param znear defines the near clip plane
@@ -3295,6 +3369,7 @@ export declare class Matrix {
3295
3369
  static OrthoLH(width: number, height: number, znear: number, zfar: number, halfZRange?: boolean): Matrix;
3296
3370
  /**
3297
3371
  * Store a left-handed orthographic projection to a given matrix
3372
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#71
3298
3373
  * @param width defines the viewport width
3299
3374
  * @param height defines the viewport height
3300
3375
  * @param znear defines the near clip plane
@@ -3306,6 +3381,7 @@ export declare class Matrix {
3306
3381
  static OrthoLHToRef<T extends Matrix>(width: number, height: number, znear: number, zfar: number, result: T, halfZRange?: boolean): T;
3307
3382
  /**
3308
3383
  * Create a left-handed orthographic projection matrix
3384
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#72
3309
3385
  * @param left defines the viewport left coordinate
3310
3386
  * @param right defines the viewport right coordinate
3311
3387
  * @param bottom defines the viewport bottom coordinate
@@ -3318,6 +3394,7 @@ export declare class Matrix {
3318
3394
  static OrthoOffCenterLH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number, halfZRange?: boolean): Matrix;
3319
3395
  /**
3320
3396
  * Stores a left-handed orthographic projection into a given matrix
3397
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#73
3321
3398
  * @param left defines the viewport left coordinate
3322
3399
  * @param right defines the viewport right coordinate
3323
3400
  * @param bottom defines the viewport bottom coordinate
@@ -3331,6 +3408,7 @@ export declare class Matrix {
3331
3408
  static OrthoOffCenterLHToRef<T extends Matrix>(left: number, right: number, bottom: number, top: number, znear: number, zfar: number, result: T, halfZRange?: boolean): T;
3332
3409
  /**
3333
3410
  * Creates a right-handed orthographic projection matrix
3411
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#76
3334
3412
  * @param left defines the viewport left coordinate
3335
3413
  * @param right defines the viewport right coordinate
3336
3414
  * @param bottom defines the viewport bottom coordinate
@@ -3343,6 +3421,7 @@ export declare class Matrix {
3343
3421
  static OrthoOffCenterRH(left: number, right: number, bottom: number, top: number, znear: number, zfar: number, halfZRange?: boolean): Matrix;
3344
3422
  /**
3345
3423
  * Stores a right-handed orthographic projection into a given matrix
3424
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#77
3346
3425
  * @param left defines the viewport left coordinate
3347
3426
  * @param right defines the viewport right coordinate
3348
3427
  * @param bottom defines the viewport bottom coordinate
@@ -3356,6 +3435,7 @@ export declare class Matrix {
3356
3435
  static OrthoOffCenterRHToRef<T extends Matrix>(left: number, right: number, bottom: number, top: number, znear: number, zfar: number, result: T, halfZRange?: boolean): T;
3357
3436
  /**
3358
3437
  * Creates a left-handed perspective projection matrix
3438
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#85
3359
3439
  * @param width defines the viewport width
3360
3440
  * @param height defines the viewport height
3361
3441
  * @param znear defines the near clip plane
@@ -3367,6 +3447,7 @@ export declare class Matrix {
3367
3447
  static PerspectiveLH(width: number, height: number, znear: number, zfar: number, halfZRange?: boolean, projectionPlaneTilt?: number): Matrix;
3368
3448
  /**
3369
3449
  * Creates a left-handed perspective projection matrix
3450
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#78
3370
3451
  * @param fov defines the horizontal field of view
3371
3452
  * @param aspect defines the aspect ratio
3372
3453
  * @param znear defines the near clip plane
@@ -3379,6 +3460,7 @@ export declare class Matrix {
3379
3460
  static PerspectiveFovLH(fov: number, aspect: number, znear: number, zfar: number, halfZRange?: boolean, projectionPlaneTilt?: number, reverseDepthBufferMode?: boolean): Matrix;
3380
3461
  /**
3381
3462
  * Stores a left-handed perspective projection into a given matrix
3463
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#81
3382
3464
  * @param fov defines the horizontal field of view
3383
3465
  * @param aspect defines the aspect ratio
3384
3466
  * @param znear defines the near clip plane
@@ -3393,6 +3475,7 @@ export declare class Matrix {
3393
3475
  static PerspectiveFovLHToRef<T extends Matrix>(fov: number, aspect: number, znear: number, zfar: number, result: T, isVerticalFovFixed?: boolean, halfZRange?: boolean, projectionPlaneTilt?: number, reverseDepthBufferMode?: boolean): T;
3394
3476
  /**
3395
3477
  * Stores a left-handed perspective projection into a given matrix with depth reversed
3478
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#89
3396
3479
  * @param fov defines the horizontal field of view
3397
3480
  * @param aspect defines the aspect ratio
3398
3481
  * @param znear defines the near clip plane
@@ -3406,6 +3489,7 @@ export declare class Matrix {
3406
3489
  static PerspectiveFovReverseLHToRef<T extends Matrix>(fov: number, aspect: number, znear: number, zfar: number, result: T, isVerticalFovFixed?: boolean, halfZRange?: boolean, projectionPlaneTilt?: number): T;
3407
3490
  /**
3408
3491
  * Creates a right-handed perspective projection matrix
3492
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#83
3409
3493
  * @param fov defines the horizontal field of view
3410
3494
  * @param aspect defines the aspect ratio
3411
3495
  * @param znear defines the near clip plane
@@ -3418,6 +3502,7 @@ export declare class Matrix {
3418
3502
  static PerspectiveFovRH(fov: number, aspect: number, znear: number, zfar: number, halfZRange?: boolean, projectionPlaneTilt?: number, reverseDepthBufferMode?: boolean): Matrix;
3419
3503
  /**
3420
3504
  * Stores a right-handed perspective projection into a given matrix
3505
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#84
3421
3506
  * @param fov defines the horizontal field of view
3422
3507
  * @param aspect defines the aspect ratio
3423
3508
  * @param znear defines the near clip plane
@@ -3432,6 +3517,7 @@ export declare class Matrix {
3432
3517
  static PerspectiveFovRHToRef<T extends Matrix>(fov: number, aspect: number, znear: number, zfar: number, result: T, isVerticalFovFixed?: boolean, halfZRange?: boolean, projectionPlaneTilt?: number, reverseDepthBufferMode?: boolean): T;
3433
3518
  /**
3434
3519
  * Stores a right-handed perspective projection into a given matrix
3520
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#90
3435
3521
  * @param fov defines the horizontal field of view
3436
3522
  * @param aspect defines the aspect ratio
3437
3523
  * @param znear defines the near clip plane
@@ -3445,6 +3531,7 @@ export declare class Matrix {
3445
3531
  static PerspectiveFovReverseRHToRef<T extends Matrix>(fov: number, aspect: number, znear: number, zfar: number, result: T, isVerticalFovFixed?: boolean, halfZRange?: boolean, projectionPlaneTilt?: number): T;
3446
3532
  /**
3447
3533
  * Stores a perspective projection for WebVR info a given matrix
3534
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#92
3448
3535
  * @param fov defines the field of view
3449
3536
  * @param fov.upDegrees
3450
3537
  * @param fov.downDegrees
@@ -3466,6 +3553,7 @@ export declare class Matrix {
3466
3553
  }, znear: number, zfar: number, result: T, rightHanded?: boolean, halfZRange?: boolean, projectionPlaneTilt?: number): T;
3467
3554
  /**
3468
3555
  * Computes a complete transformation matrix
3556
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#113
3469
3557
  * @param viewport defines the viewport to use
3470
3558
  * @param world defines the world matrix
3471
3559
  * @param view defines the view matrix
@@ -3489,12 +3577,14 @@ export declare class Matrix {
3489
3577
  static GetAsMatrix3x3(matrix: DeepImmutable<Matrix>): Float32Array | Array<number>;
3490
3578
  /**
3491
3579
  * Compute the transpose of a given matrix
3580
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#111
3492
3581
  * @param matrix defines the matrix to transpose
3493
3582
  * @returns the new matrix
3494
3583
  */
3495
3584
  static Transpose<T extends Matrix>(matrix: DeepImmutable<T>): T;
3496
3585
  /**
3497
3586
  * Compute the transpose of a matrix and store it in a target matrix
3587
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#112
3498
3588
  * @param matrix defines the matrix to transpose
3499
3589
  * @param result defines the target matrix
3500
3590
  * @returns result input
@@ -3502,12 +3592,14 @@ export declare class Matrix {
3502
3592
  static TransposeToRef<T extends Matrix>(matrix: DeepImmutable<Matrix>, result: T): T;
3503
3593
  /**
3504
3594
  * Computes a reflection matrix from a plane
3595
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#87
3505
3596
  * @param plane defines the reflection plane
3506
3597
  * @returns a new matrix
3507
3598
  */
3508
3599
  static Reflection(plane: DeepImmutable<IPlaneLike>): Matrix;
3509
3600
  /**
3510
3601
  * Computes a reflection matrix from a plane
3602
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#88
3511
3603
  * @param plane defines the reflection plane
3512
3604
  * @param result defines the target matrix
3513
3605
  * @returns result input