@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
@@ -4315,20 +4315,25 @@ export class Quaternion {
4315
4315
  }
4316
4316
  /**
4317
4317
  * Class used to store matrix data (4x4)
4318
- * Note on matrix definitions in Babylon.js for setting values directly rather than using one of the methods available.
4318
+ * Note on matrix definitions in Babylon.js for setting values directly
4319
+ * rather than using one of the methods available.
4319
4320
  * Matrix size is given by rows x columns.
4320
4321
  * A Vector3 is a 1 X 3 matrix [x, y, z].
4322
+ *
4321
4323
  * In Babylon.js multiplying a 1 x 3 matrix by a 4 x 4 matrix
4322
- * is done using BABYLON.Vector4.TransformCoordinates(vector3, matrix)
4323
- * and extending the passed Vector3 to a Vector4 [x, y, z, w] with w = 1.
4324
- * The multiplication has this form
4325
- * [x, y, z, w] |m0, m1, m2, m3 |
4326
- * |m4, m5, m6, m7 |
4327
- * |m8, m9, m10, m11|
4328
- * |m12, m13, m14, m15|
4324
+ * is done using BABYLON.Vector4.TransformCoordinates(Vector3, Matrix).
4325
+ * and extending the passed Vector3 to a Vector4, V = [x, y, z, 1].
4326
+ * Let M be a matrix with elements m(row, column), so that
4327
+ * m(2, 3) is the element in row 2 column 3 of M.
4329
4328
  *
4330
- * = [xm0 + ym4 + zm8 + wm12, xm1 + ym5 + zm9 + wm13, xm2 + ym6 + zm10 + wm14, xm3 + ym7 + zm11 + wm15]
4329
+ * Multiplication is of the form VM and has the resulting Vector4
4330
+ * 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)].
4331
+ * On the web you will find many examples that use the opposite convention of MV,
4332
+ * in which case to make use of the examples you will need to transpose the matrix.
4331
4333
  *
4334
+ * Example Playground - Overview Linear Algebra - https://playground.babylonjs.com/#AV9X17
4335
+ * Example Playground - Overview Transformation - https://playground.babylonjs.com/#AV9X17#1
4336
+ * Example Playground - Overview Projection - https://playground.babylonjs.com/#AV9X17#2
4332
4337
  */
4333
4338
  export class Matrix {
4334
4339
  /**
@@ -4441,6 +4446,7 @@ export class Matrix {
4441
4446
  }
4442
4447
  /**
4443
4448
  * Gets the determinant of the matrix
4449
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#34
4444
4450
  * @returns the matrix determinant
4445
4451
  */
4446
4452
  determinant() {
@@ -4476,6 +4482,7 @@ export class Matrix {
4476
4482
  // Methods
4477
4483
  /**
4478
4484
  * Returns the matrix as a Float32Array or Array<number>
4485
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#49
4479
4486
  * @returns the matrix underlying array
4480
4487
  */
4481
4488
  toArray() {
@@ -4483,6 +4490,7 @@ export class Matrix {
4483
4490
  }
4484
4491
  /**
4485
4492
  * Returns the matrix as a Float32Array or Array<number>
4493
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#114
4486
4494
  * @returns the matrix underlying array.
4487
4495
  */
4488
4496
  asArray() {
@@ -4490,6 +4498,7 @@ export class Matrix {
4490
4498
  }
4491
4499
  /**
4492
4500
  * Inverts the current matrix in place
4501
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#118
4493
4502
  * @returns the current inverted matrix
4494
4503
  */
4495
4504
  invert() {
@@ -4507,6 +4516,7 @@ export class Matrix {
4507
4516
  }
4508
4517
  /**
4509
4518
  * Adds the current matrix with a second one
4519
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#44
4510
4520
  * @param other defines the matrix to add
4511
4521
  * @returns a new matrix as the addition of the current matrix and the given one
4512
4522
  */
@@ -4517,6 +4527,7 @@ export class Matrix {
4517
4527
  }
4518
4528
  /**
4519
4529
  * Sets the given matrix "result" to the addition of the current matrix and the given one
4530
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#45
4520
4531
  * @param other defines the matrix to add
4521
4532
  * @param result defines the target matrix
4522
4533
  * @returns result input
@@ -4533,6 +4544,7 @@ export class Matrix {
4533
4544
  }
4534
4545
  /**
4535
4546
  * Adds in place the given matrix to the current matrix
4547
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#46
4536
4548
  * @param other defines the second operand
4537
4549
  * @returns the current updated matrix
4538
4550
  */
@@ -4547,6 +4559,7 @@ export class Matrix {
4547
4559
  }
4548
4560
  /**
4549
4561
  * Sets the given matrix to the current inverted Matrix
4562
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#119
4550
4563
  * @param other defines the target matrix
4551
4564
  * @returns result input
4552
4565
  */
@@ -4607,6 +4620,7 @@ export class Matrix {
4607
4620
  }
4608
4621
  /**
4609
4622
  * add a value at the specified position in the current Matrix
4623
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#47
4610
4624
  * @param index the index of the value within the matrix. between 0 and 15.
4611
4625
  * @param value the value to be added
4612
4626
  * @returns the current updated matrix
@@ -4629,6 +4643,7 @@ export class Matrix {
4629
4643
  }
4630
4644
  /**
4631
4645
  * Inserts the translation vector (using 3 floats) in the current matrix
4646
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#120
4632
4647
  * @param x defines the 1st component of the translation
4633
4648
  * @param y defines the 2nd component of the translation
4634
4649
  * @param z defines the 3rd component of the translation
@@ -4643,6 +4658,8 @@ export class Matrix {
4643
4658
  }
4644
4659
  /**
4645
4660
  * Adds the translation vector (using 3 floats) in the current matrix
4661
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#20
4662
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#48
4646
4663
  * @param x defines the 1st component of the translation
4647
4664
  * @param y defines the 2nd component of the translation
4648
4665
  * @param z defines the 3rd component of the translation
@@ -4657,6 +4674,7 @@ export class Matrix {
4657
4674
  }
4658
4675
  /**
4659
4676
  * Inserts the translation vector in the current matrix
4677
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#121
4660
4678
  * @param vector3 defines the translation to insert
4661
4679
  * @returns the current updated matrix
4662
4680
  */
@@ -4665,6 +4683,7 @@ export class Matrix {
4665
4683
  }
4666
4684
  /**
4667
4685
  * Gets the translation value of the current matrix
4686
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#122
4668
4687
  * @returns a new Vector3 as the extracted translation from the matrix
4669
4688
  */
4670
4689
  getTranslation() {
@@ -4672,6 +4691,7 @@ export class Matrix {
4672
4691
  }
4673
4692
  /**
4674
4693
  * Fill a Vector3 with the extracted translation from the matrix
4694
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#123
4675
4695
  * @param result defines the Vector3 where to store the translation
4676
4696
  * @returns the current matrix
4677
4697
  */
@@ -4693,6 +4713,7 @@ export class Matrix {
4693
4713
  }
4694
4714
  /**
4695
4715
  * Multiply two matrices
4716
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#15
4696
4717
  * A.multiply(B) means apply B to A so result is B x A
4697
4718
  * @param other defines the second operand
4698
4719
  * @returns a new matrix set with the multiplication result of the current Matrix and the given one
@@ -4704,6 +4725,7 @@ export class Matrix {
4704
4725
  }
4705
4726
  /**
4706
4727
  * Copy the current matrix from the given one
4728
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#21
4707
4729
  * @param other defines the source matrix
4708
4730
  * @returns the current updated matrix
4709
4731
  */
@@ -4743,6 +4765,7 @@ export class Matrix {
4743
4765
  /**
4744
4766
  * Sets the given matrix "result" with the multiplication result of the current Matrix and the given one
4745
4767
  * A.multiplyToRef(B, R) means apply B to A and store in R and R = B x A
4768
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#16
4746
4769
  * @param other defines the second operand
4747
4770
  * @param result defines the matrix where to store the multiplication
4748
4771
  * @returns result input
@@ -4832,6 +4855,7 @@ export class Matrix {
4832
4855
  }
4833
4856
  /**
4834
4857
  * Clone the current matrix
4858
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#18
4835
4859
  * @returns a new matrix from the current matrix
4836
4860
  */
4837
4861
  clone() {
@@ -4859,6 +4883,7 @@ export class Matrix {
4859
4883
  }
4860
4884
  /**
4861
4885
  * Decomposes the current Matrix into a translation, rotation and scaling components of the provided node
4886
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#13
4862
4887
  * @param node the node to decompose the matrix to
4863
4888
  * @returns true if operation was successful
4864
4889
  */
@@ -4868,6 +4893,7 @@ export class Matrix {
4868
4893
  }
4869
4894
  /**
4870
4895
  * Decomposes the current Matrix into a translation, rotation and scaling components
4896
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#12
4871
4897
  * @param scale defines the scale vector3 given as a reference to update
4872
4898
  * @param rotation defines the rotation quaternion given as a reference to update
4873
4899
  * @param translation defines the translation vector3 given as a reference to update
@@ -4923,6 +4949,7 @@ export class Matrix {
4923
4949
  }
4924
4950
  /**
4925
4951
  * Gets specific row of the matrix
4952
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
4926
4953
  * @param index defines the number of the row to get
4927
4954
  * @returns the index-th row of the current matrix as a new Vector4
4928
4955
  */
@@ -4935,6 +4962,7 @@ export class Matrix {
4935
4962
  }
4936
4963
  /**
4937
4964
  * Gets specific row of the matrix to ref
4965
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
4938
4966
  * @param index defines the number of the row to get
4939
4967
  * @param rowVector vector to store the index-th row of the current matrix
4940
4968
  * @returns result input
@@ -4951,6 +4979,7 @@ export class Matrix {
4951
4979
  }
4952
4980
  /**
4953
4981
  * Sets the index-th row of the current matrix to the vector4 values
4982
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
4954
4983
  * @param index defines the number of the row to set
4955
4984
  * @param row defines the target vector4
4956
4985
  * @returns the updated current matrix
@@ -4960,6 +4989,7 @@ export class Matrix {
4960
4989
  }
4961
4990
  /**
4962
4991
  * Compute the transpose of the matrix
4992
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#40
4963
4993
  * @returns the new transposed matrix
4964
4994
  */
4965
4995
  transpose() {
@@ -4969,6 +4999,7 @@ export class Matrix {
4969
4999
  }
4970
5000
  /**
4971
5001
  * Compute the transpose of the matrix and store it in a given matrix
5002
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#41
4972
5003
  * @param result defines the target matrix
4973
5004
  * @returns result input
4974
5005
  */
@@ -4978,6 +5009,7 @@ export class Matrix {
4978
5009
  }
4979
5010
  /**
4980
5011
  * Sets the index-th row of the current matrix with the given 4 x float values
5012
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#36
4981
5013
  * @param index defines the row index
4982
5014
  * @param x defines the x component to set
4983
5015
  * @param y defines the y component to set
@@ -5035,6 +5067,7 @@ export class Matrix {
5035
5067
  }
5036
5068
  /**
5037
5069
  * Writes to the given matrix a normal matrix, computed from this one (using values from identity matrix for fourth row and column).
5070
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#17
5038
5071
  * @param ref matrix to store the result
5039
5072
  */
5040
5073
  toNormalMatrix(ref) {
@@ -5098,6 +5131,7 @@ export class Matrix {
5098
5131
  // Statics
5099
5132
  /**
5100
5133
  * Creates a matrix from an array
5134
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#42
5101
5135
  * @param array defines the source array
5102
5136
  * @param offset defines an offset in the source array
5103
5137
  * @returns a new Matrix set from the starting index of the given array
@@ -5109,6 +5143,7 @@ export class Matrix {
5109
5143
  }
5110
5144
  /**
5111
5145
  * Copy the content of an array into a given matrix
5146
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#43
5112
5147
  * @param array defines the source array
5113
5148
  * @param offset defines an offset in the source array
5114
5149
  * @param result defines the target matrix
@@ -5123,6 +5158,7 @@ export class Matrix {
5123
5158
  }
5124
5159
  /**
5125
5160
  * Stores an array into a matrix after having multiplied each component by a given factor
5161
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#50
5126
5162
  * @param array defines the source array
5127
5163
  * @param offset defines the offset in the source array
5128
5164
  * @param scale defines the scaling factor
@@ -5227,6 +5263,7 @@ export class Matrix {
5227
5263
  }
5228
5264
  /**
5229
5265
  * Creates a new matrix composed by merging scale (vector3), rotation (quaternion) and translation (vector3)
5266
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#24
5230
5267
  * @param scale defines the scale vector3
5231
5268
  * @param rotation defines the rotation quaternion
5232
5269
  * @param translation defines the translation vector3
@@ -5239,6 +5276,7 @@ export class Matrix {
5239
5276
  }
5240
5277
  /**
5241
5278
  * Sets a matrix to a value composed by merging scale (vector3), rotation (quaternion) and translation (vector3)
5279
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#25
5242
5280
  * @param scale defines the scale vector3
5243
5281
  * @param rotation defines the rotation quaternion
5244
5282
  * @param translation defines the translation vector3
@@ -5302,6 +5340,7 @@ export class Matrix {
5302
5340
  }
5303
5341
  /**
5304
5342
  * Creates a new rotation matrix for "angle" radians around the X axis
5343
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#97
5305
5344
  * @param angle defines the angle (in radians) to use
5306
5345
  * @returns the new matrix
5307
5346
  */
@@ -5312,6 +5351,7 @@ export class Matrix {
5312
5351
  }
5313
5352
  /**
5314
5353
  * Creates a new matrix as the invert of a given matrix
5354
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#124
5315
5355
  * @param source defines the source matrix
5316
5356
  * @returns the new matrix
5317
5357
  */
@@ -5322,6 +5362,7 @@ export class Matrix {
5322
5362
  }
5323
5363
  /**
5324
5364
  * Creates a new rotation matrix for "angle" radians around the X axis and stores it in a given matrix
5365
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#98
5325
5366
  * @param angle defines the angle (in radians) to use
5326
5367
  * @param result defines the target matrix
5327
5368
  * @returns result input
@@ -5335,6 +5376,7 @@ export class Matrix {
5335
5376
  }
5336
5377
  /**
5337
5378
  * Creates a new rotation matrix for "angle" radians around the Y axis
5379
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#99
5338
5380
  * @param angle defines the angle (in radians) to use
5339
5381
  * @returns the new matrix
5340
5382
  */
@@ -5345,6 +5387,7 @@ export class Matrix {
5345
5387
  }
5346
5388
  /**
5347
5389
  * Creates a new rotation matrix for "angle" radians around the Y axis and stores it in a given matrix
5390
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#100
5348
5391
  * @param angle defines the angle (in radians) to use
5349
5392
  * @param result defines the target matrix
5350
5393
  * @returns result input
@@ -5358,6 +5401,7 @@ export class Matrix {
5358
5401
  }
5359
5402
  /**
5360
5403
  * Creates a new rotation matrix for "angle" radians around the Z axis
5404
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#101
5361
5405
  * @param angle defines the angle (in radians) to use
5362
5406
  * @returns the new matrix
5363
5407
  */
@@ -5368,6 +5412,7 @@ export class Matrix {
5368
5412
  }
5369
5413
  /**
5370
5414
  * Creates a new rotation matrix for "angle" radians around the Z axis and stores it in a given matrix
5415
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#102
5371
5416
  * @param angle defines the angle (in radians) to use
5372
5417
  * @param result defines the target matrix
5373
5418
  * @returns result input
@@ -5381,6 +5426,7 @@ export class Matrix {
5381
5426
  }
5382
5427
  /**
5383
5428
  * Creates a new rotation matrix for "angle" radians around the given axis
5429
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#96
5384
5430
  * @param axis defines the axis to use
5385
5431
  * @param angle defines the angle (in radians) to use
5386
5432
  * @returns the new matrix
@@ -5392,6 +5438,7 @@ export class Matrix {
5392
5438
  }
5393
5439
  /**
5394
5440
  * Creates a new rotation matrix for "angle" radians around the given axis and stores it in a given matrix
5441
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#94
5395
5442
  * @param axis defines the axis to use
5396
5443
  * @param angle defines the angle (in radians) to use
5397
5444
  * @param result defines the target matrix
@@ -5425,6 +5472,7 @@ export class Matrix {
5425
5472
  /**
5426
5473
  * Takes normalised vectors and returns a rotation matrix to align "from" with "to".
5427
5474
  * Taken from http://www.iquilezles.org/www/articles/noacos/noacos.htm
5475
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#93
5428
5476
  * @param from defines the vector to align
5429
5477
  * @param to defines the vector to align to
5430
5478
  * @param result defines the target matrix
@@ -5474,6 +5522,8 @@ export class Matrix {
5474
5522
  }
5475
5523
  /**
5476
5524
  * Creates a rotation matrix
5525
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#103
5526
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#105
5477
5527
  * @param yaw defines the yaw angle in radians (Y axis)
5478
5528
  * @param pitch defines the pitch angle in radians (X axis)
5479
5529
  * @param roll defines the roll angle in radians (Z axis)
@@ -5486,6 +5536,7 @@ export class Matrix {
5486
5536
  }
5487
5537
  /**
5488
5538
  * Creates a rotation matrix and stores it in a given matrix
5539
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#104
5489
5540
  * @param yaw defines the yaw angle in radians (Y axis)
5490
5541
  * @param pitch defines the pitch angle in radians (X axis)
5491
5542
  * @param roll defines the roll angle in radians (Z axis)
@@ -5499,6 +5550,7 @@ export class Matrix {
5499
5550
  }
5500
5551
  /**
5501
5552
  * Creates a scaling matrix
5553
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#107
5502
5554
  * @param x defines the scale factor on X axis
5503
5555
  * @param y defines the scale factor on Y axis
5504
5556
  * @param z defines the scale factor on Z axis
@@ -5511,6 +5563,7 @@ export class Matrix {
5511
5563
  }
5512
5564
  /**
5513
5565
  * Creates a scaling matrix and stores it in a given matrix
5566
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#108
5514
5567
  * @param x defines the scale factor on X axis
5515
5568
  * @param y defines the scale factor on Y axis
5516
5569
  * @param z defines the scale factor on Z axis
@@ -5524,6 +5577,7 @@ export class Matrix {
5524
5577
  }
5525
5578
  /**
5526
5579
  * Creates a translation matrix
5580
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#109
5527
5581
  * @param x defines the translation on X axis
5528
5582
  * @param y defines the translation on Y axis
5529
5583
  * @param z defines the translationon Z axis
@@ -5536,6 +5590,7 @@ export class Matrix {
5536
5590
  }
5537
5591
  /**
5538
5592
  * Creates a translation matrix and stores it in a given matrix
5593
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#110
5539
5594
  * @param x defines the translation on X axis
5540
5595
  * @param y defines the translation on Y axis
5541
5596
  * @param z defines the translationon Z axis
@@ -5549,6 +5604,7 @@ export class Matrix {
5549
5604
  }
5550
5605
  /**
5551
5606
  * Returns a new Matrix whose values are the interpolated values for "gradient" (float) between the ones of the matrices "startValue" and "endValue".
5607
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#55
5552
5608
  * @param startValue defines the start value
5553
5609
  * @param endValue defines the end value
5554
5610
  * @param gradient defines the gradient factor
@@ -5561,6 +5617,7 @@ export class Matrix {
5561
5617
  }
5562
5618
  /**
5563
5619
  * Set the given matrix "result" as the interpolated values for "gradient" (float) between the ones of the matrices "startValue" and "endValue".
5620
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#54
5564
5621
  * @param startValue defines the start value
5565
5622
  * @param endValue defines the end value
5566
5623
  * @param gradient defines the gradient factor
@@ -5582,6 +5639,8 @@ export class Matrix {
5582
5639
  * * decomposing the the "startValue" and "endValue" matrices into their respective scale, rotation and translation matrices
5583
5640
  * * interpolating for "gradient" (float) the values between each of these decomposed matrices between the start and the end
5584
5641
  * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices
5642
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#22
5643
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#51
5585
5644
  * @param startValue defines the first matrix
5586
5645
  * @param endValue defines the second matrix
5587
5646
  * @param gradient defines the gradient between the two matrices
@@ -5597,6 +5656,8 @@ export class Matrix {
5597
5656
  * * decomposing the the "startValue" and "endValue" matrices into their respective scale, rotation and translation matrices
5598
5657
  * * interpolating for "gradient" (float) the values between each of these decomposed matrices between the start and the end
5599
5658
  * * recomposing a new matrix from these 3 interpolated scale, rotation and translation matrices
5659
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#23
5660
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#53
5600
5661
  * @param startValue defines the first matrix
5601
5662
  * @param endValue defines the second matrix
5602
5663
  * @param gradient defines the gradient between the two matrices
@@ -5624,6 +5685,8 @@ export class Matrix {
5624
5685
  /**
5625
5686
  * 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.
5626
5687
  * This function generates a matrix suitable for a left handed coordinate system
5688
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#58
5689
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#59
5627
5690
  * @param eye defines the final position of the entity
5628
5691
  * @param target defines where the entity should look at
5629
5692
  * @param up defines the up vector for the entity
@@ -5637,6 +5700,8 @@ export class Matrix {
5637
5700
  /**
5638
5701
  * 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.
5639
5702
  * This function generates a matrix suitable for a left handed coordinate system
5703
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#60
5704
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#61
5640
5705
  * @param eye defines the final position of the entity
5641
5706
  * @param target defines where the entity should look at
5642
5707
  * @param up defines the up vector for the entity
@@ -5671,6 +5736,8 @@ export class Matrix {
5671
5736
  /**
5672
5737
  * 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.
5673
5738
  * This function generates a matrix suitable for a right handed coordinate system
5739
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#62
5740
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#63
5674
5741
  * @param eye defines the final position of the entity
5675
5742
  * @param target defines where the entity should look at
5676
5743
  * @param up defines the up vector for the entity
@@ -5684,6 +5751,8 @@ export class Matrix {
5684
5751
  /**
5685
5752
  * 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.
5686
5753
  * This function generates a matrix suitable for a right handed coordinate system
5754
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#64
5755
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#65
5687
5756
  * @param eye defines the final position of the entity
5688
5757
  * @param target defines where the entity should look at
5689
5758
  * @param up defines the up vector for the entity
@@ -5719,6 +5788,7 @@ export class Matrix {
5719
5788
  /**
5720
5789
  * 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)
5721
5790
  * This function generates a matrix suitable for a left handed coordinate system
5791
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#66
5722
5792
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
5723
5793
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
5724
5794
  * @returns the new matrix
@@ -5731,6 +5801,7 @@ export class Matrix {
5731
5801
  /**
5732
5802
  * 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)
5733
5803
  * This function generates a matrix suitable for a left handed coordinate system
5804
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#67
5734
5805
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
5735
5806
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
5736
5807
  * @param result defines the target matrix
@@ -5749,6 +5820,7 @@ export class Matrix {
5749
5820
  /**
5750
5821
  * 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)
5751
5822
  * This function generates a matrix suitable for a right handed coordinate system
5823
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#68
5752
5824
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
5753
5825
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
5754
5826
  * @returns the new matrix
@@ -5761,6 +5833,7 @@ export class Matrix {
5761
5833
  /**
5762
5834
  * 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)
5763
5835
  * This function generates a matrix suitable for a right handed coordinate system
5836
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#69
5764
5837
  * @param forward defines the forward direction - Must be normalized and orthogonal to up.
5765
5838
  * @param up defines the up vector for the entity - Must be normalized and orthogonal to forward.
5766
5839
  * @param result defines the target matrix
@@ -5775,6 +5848,7 @@ export class Matrix {
5775
5848
  }
5776
5849
  /**
5777
5850
  * Create a left-handed orthographic projection matrix
5851
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#70
5778
5852
  * @param width defines the viewport width
5779
5853
  * @param height defines the viewport height
5780
5854
  * @param znear defines the near clip plane
@@ -5789,6 +5863,7 @@ export class Matrix {
5789
5863
  }
5790
5864
  /**
5791
5865
  * Store a left-handed orthographic projection to a given matrix
5866
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#71
5792
5867
  * @param width defines the viewport width
5793
5868
  * @param height defines the viewport height
5794
5869
  * @param znear defines the near clip plane
@@ -5813,6 +5888,7 @@ export class Matrix {
5813
5888
  }
5814
5889
  /**
5815
5890
  * Create a left-handed orthographic projection matrix
5891
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#72
5816
5892
  * @param left defines the viewport left coordinate
5817
5893
  * @param right defines the viewport right coordinate
5818
5894
  * @param bottom defines the viewport bottom coordinate
@@ -5829,6 +5905,7 @@ export class Matrix {
5829
5905
  }
5830
5906
  /**
5831
5907
  * Stores a left-handed orthographic projection into a given matrix
5908
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#73
5832
5909
  * @param left defines the viewport left coordinate
5833
5910
  * @param right defines the viewport right coordinate
5834
5911
  * @param bottom defines the viewport bottom coordinate
@@ -5857,6 +5934,7 @@ export class Matrix {
5857
5934
  }
5858
5935
  /**
5859
5936
  * Creates a right-handed orthographic projection matrix
5937
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#76
5860
5938
  * @param left defines the viewport left coordinate
5861
5939
  * @param right defines the viewport right coordinate
5862
5940
  * @param bottom defines the viewport bottom coordinate
@@ -5873,6 +5951,7 @@ export class Matrix {
5873
5951
  }
5874
5952
  /**
5875
5953
  * Stores a right-handed orthographic projection into a given matrix
5954
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#77
5876
5955
  * @param left defines the viewport left coordinate
5877
5956
  * @param right defines the viewport right coordinate
5878
5957
  * @param bottom defines the viewport bottom coordinate
@@ -5890,6 +5969,7 @@ export class Matrix {
5890
5969
  }
5891
5970
  /**
5892
5971
  * Creates a left-handed perspective projection matrix
5972
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#85
5893
5973
  * @param width defines the viewport width
5894
5974
  * @param height defines the viewport height
5895
5975
  * @param znear defines the near clip plane
@@ -5916,6 +5996,7 @@ export class Matrix {
5916
5996
  }
5917
5997
  /**
5918
5998
  * Creates a left-handed perspective projection matrix
5999
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#78
5919
6000
  * @param fov defines the horizontal field of view
5920
6001
  * @param aspect defines the aspect ratio
5921
6002
  * @param znear defines the near clip plane
@@ -5932,6 +6013,7 @@ export class Matrix {
5932
6013
  }
5933
6014
  /**
5934
6015
  * Stores a left-handed perspective projection into a given matrix
6016
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#81
5935
6017
  * @param fov defines the horizontal field of view
5936
6018
  * @param aspect defines the aspect ratio
5937
6019
  * @param znear defines the near clip plane
@@ -5961,6 +6043,7 @@ export class Matrix {
5961
6043
  }
5962
6044
  /**
5963
6045
  * Stores a left-handed perspective projection into a given matrix with depth reversed
6046
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#89
5964
6047
  * @param fov defines the horizontal field of view
5965
6048
  * @param aspect defines the aspect ratio
5966
6049
  * @param znear defines the near clip plane
@@ -5985,6 +6068,7 @@ export class Matrix {
5985
6068
  }
5986
6069
  /**
5987
6070
  * Creates a right-handed perspective projection matrix
6071
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#83
5988
6072
  * @param fov defines the horizontal field of view
5989
6073
  * @param aspect defines the aspect ratio
5990
6074
  * @param znear defines the near clip plane
@@ -6001,6 +6085,7 @@ export class Matrix {
6001
6085
  }
6002
6086
  /**
6003
6087
  * Stores a right-handed perspective projection into a given matrix
6088
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#84
6004
6089
  * @param fov defines the horizontal field of view
6005
6090
  * @param aspect defines the aspect ratio
6006
6091
  * @param znear defines the near clip plane
@@ -6034,6 +6119,7 @@ export class Matrix {
6034
6119
  }
6035
6120
  /**
6036
6121
  * Stores a right-handed perspective projection into a given matrix
6122
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#90
6037
6123
  * @param fov defines the horizontal field of view
6038
6124
  * @param aspect defines the aspect ratio
6039
6125
  * @param znear defines the near clip plane
@@ -6058,6 +6144,7 @@ export class Matrix {
6058
6144
  }
6059
6145
  /**
6060
6146
  * Stores a perspective projection for WebVR info a given matrix
6147
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#92
6061
6148
  * @param fov defines the field of view
6062
6149
  * @param fov.upDegrees
6063
6150
  * @param fov.downDegrees
@@ -6100,6 +6187,7 @@ export class Matrix {
6100
6187
  }
6101
6188
  /**
6102
6189
  * Computes a complete transformation matrix
6190
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#113
6103
6191
  * @param viewport defines the viewport to use
6104
6192
  * @param world defines the world matrix
6105
6193
  * @param view defines the view matrix
@@ -6141,6 +6229,7 @@ export class Matrix {
6141
6229
  }
6142
6230
  /**
6143
6231
  * Compute the transpose of a given matrix
6232
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#111
6144
6233
  * @param matrix defines the matrix to transpose
6145
6234
  * @returns the new matrix
6146
6235
  */
@@ -6151,6 +6240,7 @@ export class Matrix {
6151
6240
  }
6152
6241
  /**
6153
6242
  * Compute the transpose of a matrix and store it in a target matrix
6243
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#112
6154
6244
  * @param matrix defines the matrix to transpose
6155
6245
  * @param result defines the target matrix
6156
6246
  * @returns result input
@@ -6181,6 +6271,7 @@ export class Matrix {
6181
6271
  }
6182
6272
  /**
6183
6273
  * Computes a reflection matrix from a plane
6274
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#87
6184
6275
  * @param plane defines the reflection plane
6185
6276
  * @returns a new matrix
6186
6277
  */
@@ -6191,6 +6282,7 @@ export class Matrix {
6191
6282
  }
6192
6283
  /**
6193
6284
  * Computes a reflection matrix from a plane
6285
+ * Example Playground - https://playground.babylonjs.com/#AV9X17#88
6194
6286
  * @param plane defines the reflection plane
6195
6287
  * @param result defines the target matrix
6196
6288
  * @returns result input