@babylonjs/core 8.8.5 → 8.9.1

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 (172) hide show
  1. package/Animations/animatable.core.js +2 -2
  2. package/Animations/animatable.core.js.map +1 -1
  3. package/AudioV2/abstractAudio/abstractSound.d.ts +0 -7
  4. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  5. package/AudioV2/abstractAudio/abstractSoundSource.d.ts +6 -3
  6. package/AudioV2/abstractAudio/abstractSoundSource.js +1 -2
  7. package/AudioV2/abstractAudio/abstractSoundSource.js.map +1 -1
  8. package/AudioV2/webAudio/webAudioEngine.js +4 -1
  9. package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
  10. package/AudioV2/webAudio/webAudioSoundSource.js +1 -1
  11. package/AudioV2/webAudio/webAudioSoundSource.js.map +1 -1
  12. package/AudioV2/webAudio/webAudioStaticSound.js +1 -1
  13. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  14. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  15. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  16. package/Cameras/targetCamera.d.ts +0 -4
  17. package/Cameras/targetCamera.js +0 -28
  18. package/Cameras/targetCamera.js.map +1 -1
  19. package/Collisions/gpuPicker.d.ts +3 -0
  20. package/Collisions/gpuPicker.js +26 -2
  21. package/Collisions/gpuPicker.js.map +1 -1
  22. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +22 -15
  23. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  24. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -0
  25. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +8 -0
  26. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
  27. package/Engines/WebGPU/webgpuBufferManager.js +5 -2
  28. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  29. package/Engines/abstractEngine.js +2 -2
  30. package/Engines/abstractEngine.js.map +1 -1
  31. package/Engines/constants.d.ts +5 -0
  32. package/Engines/constants.js +5 -0
  33. package/Engines/constants.js.map +1 -1
  34. package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js +1 -1
  35. package/FlowGraph/Blocks/Data/flowGraphDataSwitchBlock.js.map +1 -1
  36. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.d.ts +2 -1
  37. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js +5 -4
  38. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.js.map +1 -1
  39. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.d.ts +3 -1
  40. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js +26 -4
  41. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSetDelayBlock.js.map +1 -1
  42. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +3 -0
  43. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +13 -0
  44. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
  45. package/FrameGraph/Node/nodeRenderGraph.d.ts +1 -1
  46. package/FrameGraph/Node/nodeRenderGraph.js +1 -1
  47. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  48. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +7 -0
  49. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +17 -0
  50. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  51. package/FrameGraph/frameGraph.d.ts +2 -0
  52. package/FrameGraph/frameGraph.js +2 -0
  53. package/FrameGraph/frameGraph.js.map +1 -1
  54. package/Gizmos/planeRotationGizmo.js +1 -1
  55. package/Gizmos/planeRotationGizmo.js.map +1 -1
  56. package/Helpers/environmentHelper.js +3 -3
  57. package/Helpers/environmentHelper.js.map +1 -1
  58. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +1 -0
  59. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  60. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +4 -1
  61. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  62. package/Materials/PBR/pbrBRDFConfiguration.d.ts +30 -0
  63. package/Materials/PBR/pbrBRDFConfiguration.js +45 -0
  64. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  65. package/Materials/PBR/pbrBaseMaterial.d.ts +0 -10
  66. package/Materials/PBR/pbrBaseMaterial.js +0 -13
  67. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  68. package/Materials/PBR/pbrMaterial.d.ts +0 -16
  69. package/Materials/PBR/pbrMaterial.decalMap.js +0 -5
  70. package/Materials/PBR/pbrMaterial.decalMap.js.map +1 -1
  71. package/Materials/PBR/pbrMaterial.js +1 -30
  72. package/Materials/PBR/pbrMaterial.js.map +1 -1
  73. package/Materials/Textures/renderTargetTexture.d.ts +4 -4
  74. package/Materials/Textures/renderTargetTexture.js +3 -1
  75. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  76. package/Materials/effectRenderer.d.ts +1 -0
  77. package/Materials/effectRenderer.js +3 -1
  78. package/Materials/effectRenderer.js.map +1 -1
  79. package/Materials/shaderMaterial.d.ts +7 -8
  80. package/Materials/shaderMaterial.js +21 -15
  81. package/Materials/shaderMaterial.js.map +1 -1
  82. package/Materials/standardMaterial.decalMap.js +0 -5
  83. package/Materials/standardMaterial.decalMap.js.map +1 -1
  84. package/Materials/standardMaterial.js +1 -1
  85. package/Materials/standardMaterial.js.map +1 -1
  86. package/Maths/ThinMaths/thinMath.matrix.functions.d.ts +11 -11
  87. package/Maths/ThinMaths/thinMath.matrix.functions.js.map +1 -1
  88. package/Maths/math.like.d.ts +2 -2
  89. package/Maths/math.like.js.map +1 -1
  90. package/Maths/math.vector.d.ts +23 -17
  91. package/Maths/math.vector.js +144 -115
  92. package/Maths/math.vector.js.map +1 -1
  93. package/Meshes/Node/nodeGeometry.d.ts +1 -1
  94. package/Meshes/Node/nodeGeometry.js +1 -1
  95. package/Meshes/Node/nodeGeometry.js.map +1 -1
  96. package/Meshes/csg2.js +1 -1
  97. package/Meshes/csg2.js.map +1 -1
  98. package/Meshes/instancedMesh.js +12 -2
  99. package/Meshes/instancedMesh.js.map +1 -1
  100. package/Meshes/mesh.d.ts +2 -2
  101. package/Meshes/mesh.js.map +1 -1
  102. package/Misc/minMaxReducer.js +5 -0
  103. package/Misc/minMaxReducer.js.map +1 -1
  104. package/Offline/database.d.ts +1 -1
  105. package/Offline/database.js +5 -5
  106. package/Offline/database.js.map +1 -1
  107. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  108. package/Rendering/depthPeelingRenderer.js +1 -1
  109. package/Rendering/depthPeelingRenderer.js.map +1 -1
  110. package/Rendering/edgesRenderer.d.ts +1 -1
  111. package/Rendering/edgesRenderer.js +2 -2
  112. package/Rendering/edgesRenderer.js.map +1 -1
  113. package/Rendering/fluidRenderer/fluidRenderer.d.ts +1 -1
  114. package/Rendering/fluidRenderer/fluidRenderer.js +1 -1
  115. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  116. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  117. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  118. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  119. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  120. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +1 -1
  121. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  122. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +1 -1
  123. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +1 -1
  124. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  125. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +2 -2
  126. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +2 -2
  127. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  128. package/Rendering/prePassEffectConfiguration.d.ts +5 -0
  129. package/Rendering/prePassEffectConfiguration.js.map +1 -1
  130. package/Rendering/prePassRenderer.js +3 -0
  131. package/Rendering/prePassRenderer.js.map +1 -1
  132. package/Rendering/subSurfaceConfiguration.d.ts +6 -1
  133. package/Rendering/subSurfaceConfiguration.js +6 -1
  134. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  135. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +15 -14
  136. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  137. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +3 -0
  138. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  139. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  140. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  141. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +2 -2
  142. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  143. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +4 -4
  144. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  145. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +6 -2
  146. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  147. package/Shaders/pbr.fragment.js +6 -2
  148. package/Shaders/pbr.fragment.js.map +1 -1
  149. package/Shaders/pbr.vertex.d.ts +1 -0
  150. package/Shaders/pbr.vertex.js +12 -4
  151. package/Shaders/pbr.vertex.js.map +1 -1
  152. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +3 -0
  153. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  154. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +1 -1
  155. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -1
  156. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +2 -2
  157. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  158. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +7 -2
  159. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  160. package/ShadersWGSL/pbr.fragment.js +2 -1
  161. package/ShadersWGSL/pbr.fragment.js.map +1 -1
  162. package/ShadersWGSL/pbr.vertex.d.ts +1 -0
  163. package/ShadersWGSL/pbr.vertex.js +5 -2
  164. package/ShadersWGSL/pbr.vertex.js.map +1 -1
  165. package/assetContainer.js +13 -13
  166. package/assetContainer.js.map +1 -1
  167. package/package.json +1 -1
  168. package/scene.d.ts +4 -0
  169. package/scene.js +21 -15
  170. package/scene.js.map +1 -1
  171. package/sceneComponent.d.ts +1 -1
  172. package/sceneComponent.js.map +1 -1
@@ -1,5 +1,5 @@
1
+ import type { DeepImmutable } from "../../types.js";
1
2
  import type { IMatrixLike } from "../math.like.js";
2
- import type { ThinMatrix } from "./thinMath.matrix.js";
3
3
  /** @internal */
4
4
  export declare class MatrixManagement {
5
5
  /** @internal */
@@ -9,12 +9,12 @@ export declare class MatrixManagement {
9
9
  * Marks the given matrix as dirty
10
10
  * @param matrix defines the matrix to mark as dirty
11
11
  */
12
- export declare function MarkAsDirty(matrix: ThinMatrix): void;
12
+ export declare function MarkAsDirty(matrix: IMatrixLike): void;
13
13
  /**
14
14
  * Sets the given matrix to the identity matrix
15
15
  * @param result defines the target matrix
16
16
  */
17
- export declare function IdentityMatrixToRef(result: ThinMatrix): void;
17
+ export declare function IdentityMatrixToRef(result: IMatrixLike): void;
18
18
  /**
19
19
  * Creates a new translation matrix.
20
20
  * @param x defines the x coordinate
@@ -22,7 +22,7 @@ export declare function IdentityMatrixToRef(result: ThinMatrix): void;
22
22
  * @param z defines the z coordinate
23
23
  * @param result defines the target matrix
24
24
  */
25
- export declare function TranslationMatrixToRef(x: number, y: number, z: number, result: ThinMatrix): void;
25
+ export declare function TranslationMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void;
26
26
  /**
27
27
  * Creates a new scaling matrix.
28
28
  * @param x defines the scale factor on X axis
@@ -30,7 +30,7 @@ export declare function TranslationMatrixToRef(x: number, y: number, z: number,
30
30
  * @param z defines the scale factor on Z axis
31
31
  * @param result defines the target matrix
32
32
  */
33
- export declare function ScalingMatrixToRef(x: number, y: number, z: number, result: ThinMatrix): void;
33
+ export declare function ScalingMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void;
34
34
  /**
35
35
  * Multiplies two matrices and stores the result in the target array.
36
36
  * @param a defines the first matrix
@@ -38,7 +38,7 @@ export declare function ScalingMatrixToRef(x: number, y: number, z: number, resu
38
38
  * @param output defines the target array
39
39
  * @param offset defines the offset in the target array where to store the result (0 by default)
40
40
  */
41
- export declare function MultiplyMatricesToArray(a: IMatrixLike, b: IMatrixLike, output: Float32Array | Array<number>, offset?: number): void;
41
+ export declare function MultiplyMatricesToArray(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, output: Float32Array | Array<number>, offset?: number): void;
42
42
  /**
43
43
  * Multiplies two matrices and stores the result in a third matrix.
44
44
  * @param a defines the first matrix
@@ -46,31 +46,31 @@ export declare function MultiplyMatricesToArray(a: IMatrixLike, b: IMatrixLike,
46
46
  * @param result defines the target matrix
47
47
  * @param offset defines the offset in the target matrix where to store the result (0 by default)
48
48
  */
49
- export declare function MultiplyMatricesToRef(a: IMatrixLike, b: IMatrixLike, result: ThinMatrix, offset?: number): void;
49
+ export declare function MultiplyMatricesToRef(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, result: IMatrixLike, offset?: number): void;
50
50
  /**
51
51
  * Populates the given matrix with the current matrix values
52
52
  * @param matrix defines the source matrix
53
53
  * @param target defines the target matrix
54
54
  */
55
- export declare function CopyMatrixToRef(matrix: IMatrixLike, target: ThinMatrix): void;
55
+ export declare function CopyMatrixToRef(matrix: DeepImmutable<IMatrixLike>, target: IMatrixLike): void;
56
56
  /**
57
57
  * Populates the given array from the starting index with the current matrix values
58
58
  * @param matrix defines the source matrix
59
59
  * @param array defines the target array
60
60
  * @param offset defines the offset in the target array where to start storing values
61
61
  */
62
- export declare function CopyMatrixToArray(matrix: IMatrixLike, array: Float32Array | Array<number>, offset?: number): void;
62
+ export declare function CopyMatrixToArray(matrix: DeepImmutable<IMatrixLike>, array: Float32Array | Array<number>, offset?: number): void;
63
63
  /**
64
64
  * Inverts the given matrix and stores the result in the target matrix
65
65
  * @param source defines the source matrix
66
66
  * @param target defines the target matrix
67
67
  * @returns true if the matrix was inverted successfully, false otherwise
68
68
  */
69
- export declare function InvertMatrixToRef(source: IMatrixLike, target: ThinMatrix): boolean;
69
+ export declare function InvertMatrixToRef(source: DeepImmutable<IMatrixLike>, target: IMatrixLike): boolean;
70
70
  /**
71
71
  * Inverts the given matrix and stores the result in the target array
72
72
  * @param source defines the source matrix
73
73
  * @param target defines the target array
74
74
  * @returns true if the matrix was inverted successfully, false otherwise
75
75
  */
76
- export declare function InvertMatrixToArray(source: IMatrixLike, target: Float32Array | Array<number>): boolean;
76
+ export declare function InvertMatrixToArray(source: DeepImmutable<IMatrixLike>, target: Float32Array | Array<number>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"thinMath.matrix.functions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Maths/ThinMaths/thinMath.matrix.functions.ts"],"names":[],"mappings":"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AG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAEhC,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { IMatrixLike } from \"../math.like\";\r\nimport type { ThinMatrix } from \"./thinMath.matrix\";\r\n\r\n/** @internal */\r\nexport class MatrixManagement {\r\n /** @internal */\r\n static _UpdateFlagSeed = 0;\r\n}\r\n\r\nfunction SetMatrixData(\r\n result: ThinMatrix,\r\n m0: number,\r\n m1: number,\r\n m2: number,\r\n m3: number,\r\n m4: number,\r\n m5: number,\r\n m6: number,\r\n m7: number,\r\n m8: number,\r\n m9: number,\r\n m10: number,\r\n m11: number,\r\n m12: number,\r\n m13: number,\r\n m14: number,\r\n m15: number\r\n): void {\r\n const mat = result.asArray();\r\n mat[0] = m0;\r\n mat[1] = m1;\r\n mat[2] = m2;\r\n mat[3] = m3;\r\n mat[4] = m4;\r\n mat[5] = m5;\r\n mat[6] = m6;\r\n mat[7] = m7;\r\n mat[8] = m8;\r\n mat[9] = m9;\r\n mat[10] = m10;\r\n mat[11] = m11;\r\n mat[12] = m12;\r\n mat[13] = m13;\r\n mat[14] = m14;\r\n mat[15] = m15;\r\n\r\n MarkAsDirty(result);\r\n}\r\n\r\n/**\r\n * Marks the given matrix as dirty\r\n * @param matrix defines the matrix to mark as dirty\r\n */\r\nexport function MarkAsDirty(matrix: ThinMatrix): void {\r\n matrix.updateFlag = MatrixManagement._UpdateFlagSeed++;\r\n}\r\n\r\n/**\r\n * Sets the given matrix to the identity matrix\r\n * @param result defines the target matrix\r\n */\r\nexport function IdentityMatrixToRef(result: ThinMatrix): void {\r\n SetMatrixData(result, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0);\r\n}\r\n\r\n/**\r\n * Creates a new translation matrix.\r\n * @param x defines the x coordinate\r\n * @param y defines the y coordinate\r\n * @param z defines the z coordinate\r\n * @param result defines the target matrix\r\n */\r\nexport function TranslationMatrixToRef(x: number, y: number, z: number, result: ThinMatrix): void {\r\n SetMatrixData(result, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, x, y, z, 1.0);\r\n}\r\n\r\n/**\r\n * Creates a new scaling matrix.\r\n * @param x defines the scale factor on X axis\r\n * @param y defines the scale factor on Y axis\r\n * @param z defines the scale factor on Z axis\r\n * @param result defines the target matrix\r\n */\r\nexport function ScalingMatrixToRef(x: number, y: number, z: number, result: ThinMatrix): void {\r\n SetMatrixData(result, x, 0.0, 0.0, 0.0, 0.0, y, 0.0, 0.0, 0.0, 0.0, z, 0.0, 0.0, 0.0, 0.0, 1.0);\r\n}\r\n\r\n/**\r\n * Multiplies two matrices and stores the result in the target array.\r\n * @param a defines the first matrix\r\n * @param b defines the second matrix\r\n * @param output defines the target array\r\n * @param offset defines the offset in the target array where to store the result (0 by default)\r\n */\r\nexport function MultiplyMatricesToArray(a: IMatrixLike, b: IMatrixLike, output: Float32Array | Array<number>, offset = 0): void {\r\n const m = a.asArray();\r\n const otherM = b.asArray();\r\n const tm0 = m[0],\r\n tm1 = m[1],\r\n tm2 = m[2],\r\n tm3 = m[3];\r\n const tm4 = m[4],\r\n tm5 = m[5],\r\n tm6 = m[6],\r\n tm7 = m[7];\r\n const tm8 = m[8],\r\n tm9 = m[9],\r\n tm10 = m[10],\r\n tm11 = m[11];\r\n const tm12 = m[12],\r\n tm13 = m[13],\r\n tm14 = m[14],\r\n tm15 = m[15];\r\n\r\n const om0 = otherM[0],\r\n om1 = otherM[1],\r\n om2 = otherM[2],\r\n om3 = otherM[3];\r\n const om4 = otherM[4],\r\n om5 = otherM[5],\r\n om6 = otherM[6],\r\n om7 = otherM[7];\r\n const om8 = otherM[8],\r\n om9 = otherM[9],\r\n om10 = otherM[10],\r\n om11 = otherM[11];\r\n const om12 = otherM[12],\r\n om13 = otherM[13],\r\n om14 = otherM[14],\r\n om15 = otherM[15];\r\n output[offset] = tm0 * om0 + tm1 * om4 + tm2 * om8 + tm3 * om12;\r\n output[offset + 1] = tm0 * om1 + tm1 * om5 + tm2 * om9 + tm3 * om13;\r\n output[offset + 2] = tm0 * om2 + tm1 * om6 + tm2 * om10 + tm3 * om14;\r\n output[offset + 3] = tm0 * om3 + tm1 * om7 + tm2 * om11 + tm3 * om15;\r\n\r\n output[offset + 4] = tm4 * om0 + tm5 * om4 + tm6 * om8 + tm7 * om12;\r\n output[offset + 5] = tm4 * om1 + tm5 * om5 + tm6 * om9 + tm7 * om13;\r\n output[offset + 6] = tm4 * om2 + tm5 * om6 + tm6 * om10 + tm7 * om14;\r\n output[offset + 7] = tm4 * om3 + tm5 * om7 + tm6 * om11 + tm7 * om15;\r\n\r\n output[offset + 8] = tm8 * om0 + tm9 * om4 + tm10 * om8 + tm11 * om12;\r\n output[offset + 9] = tm8 * om1 + tm9 * om5 + tm10 * om9 + tm11 * om13;\r\n output[offset + 10] = tm8 * om2 + tm9 * om6 + tm10 * om10 + tm11 * om14;\r\n output[offset + 11] = tm8 * om3 + tm9 * om7 + tm10 * om11 + tm11 * om15;\r\n\r\n output[offset + 12] = tm12 * om0 + tm13 * om4 + tm14 * om8 + tm15 * om12;\r\n output[offset + 13] = tm12 * om1 + tm13 * om5 + tm14 * om9 + tm15 * om13;\r\n output[offset + 14] = tm12 * om2 + tm13 * om6 + tm14 * om10 + tm15 * om14;\r\n output[offset + 15] = tm12 * om3 + tm13 * om7 + tm14 * om11 + tm15 * om15;\r\n}\r\n\r\n/**\r\n * Multiplies two matrices and stores the result in a third matrix.\r\n * @param a defines the first matrix\r\n * @param b defines the second matrix\r\n * @param result defines the target matrix\r\n * @param offset defines the offset in the target matrix where to store the result (0 by default)\r\n */\r\nexport function MultiplyMatricesToRef(a: IMatrixLike, b: IMatrixLike, result: ThinMatrix, offset = 0): void {\r\n MultiplyMatricesToArray(a, b, result.asArray(), offset);\r\n MarkAsDirty(result);\r\n}\r\n\r\n/**\r\n * Populates the given matrix with the current matrix values\r\n * @param matrix defines the source matrix\r\n * @param target defines the target matrix\r\n */\r\nexport function CopyMatrixToRef(matrix: IMatrixLike, target: ThinMatrix) {\r\n CopyMatrixToArray(matrix, target.asArray());\r\n MarkAsDirty(target);\r\n}\r\n\r\n/**\r\n * Populates the given array from the starting index with the current matrix values\r\n * @param matrix defines the source matrix\r\n * @param array defines the target array\r\n * @param offset defines the offset in the target array where to start storing values\r\n */\r\nexport function CopyMatrixToArray(matrix: IMatrixLike, array: Float32Array | Array<number>, offset: number = 0) {\r\n const source = matrix.asArray();\r\n array[offset] = source[0];\r\n array[offset + 1] = source[1];\r\n array[offset + 2] = source[2];\r\n array[offset + 3] = source[3];\r\n array[offset + 4] = source[4];\r\n array[offset + 5] = source[5];\r\n array[offset + 6] = source[6];\r\n array[offset + 7] = source[7];\r\n array[offset + 8] = source[8];\r\n array[offset + 9] = source[9];\r\n array[offset + 10] = source[10];\r\n array[offset + 11] = source[11];\r\n array[offset + 12] = source[12];\r\n array[offset + 13] = source[13];\r\n array[offset + 14] = source[14];\r\n array[offset + 15] = source[15];\r\n}\r\n\r\n/**\r\n * Inverts the given matrix and stores the result in the target matrix\r\n * @param source defines the source matrix\r\n * @param target defines the target matrix\r\n * @returns true if the matrix was inverted successfully, false otherwise\r\n */\r\nexport function InvertMatrixToRef(source: IMatrixLike, target: ThinMatrix) {\r\n const result = InvertMatrixToArray(source, target.asArray());\r\n\r\n if (result) {\r\n MarkAsDirty(target);\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Inverts the given matrix and stores the result in the target array\r\n * @param source defines the source matrix\r\n * @param target defines the target array\r\n * @returns true if the matrix was inverted successfully, false otherwise\r\n */\r\nexport function InvertMatrixToArray(source: IMatrixLike, target: Float32Array | Array<number>) {\r\n // the inverse of a matrix is the transpose of cofactor matrix divided by the determinant\r\n const m = source.asArray();\r\n const m00 = m[0],\r\n m01 = m[1],\r\n m02 = m[2],\r\n m03 = m[3];\r\n const m10 = m[4],\r\n m11 = m[5],\r\n m12 = m[6],\r\n m13 = m[7];\r\n const m20 = m[8],\r\n m21 = m[9],\r\n m22 = m[10],\r\n m23 = m[11];\r\n const m30 = m[12],\r\n m31 = m[13],\r\n m32 = m[14],\r\n m33 = m[15];\r\n\r\n const det_22_33 = m22 * m33 - m32 * m23;\r\n const det_21_33 = m21 * m33 - m31 * m23;\r\n const det_21_32 = m21 * m32 - m31 * m22;\r\n const det_20_33 = m20 * m33 - m30 * m23;\r\n const det_20_32 = m20 * m32 - m22 * m30;\r\n const det_20_31 = m20 * m31 - m30 * m21;\r\n\r\n const cofact_00 = +(m11 * det_22_33 - m12 * det_21_33 + m13 * det_21_32);\r\n const cofact_01 = -(m10 * det_22_33 - m12 * det_20_33 + m13 * det_20_32);\r\n const cofact_02 = +(m10 * det_21_33 - m11 * det_20_33 + m13 * det_20_31);\r\n const cofact_03 = -(m10 * det_21_32 - m11 * det_20_32 + m12 * det_20_31);\r\n\r\n const det = m00 * cofact_00 + m01 * cofact_01 + m02 * cofact_02 + m03 * cofact_03;\r\n\r\n if (det === 0) {\r\n // Not invertible\r\n return false;\r\n }\r\n\r\n const detInv = 1 / det;\r\n const det_12_33 = m12 * m33 - m32 * m13;\r\n const det_11_33 = m11 * m33 - m31 * m13;\r\n const det_11_32 = m11 * m32 - m31 * m12;\r\n const det_10_33 = m10 * m33 - m30 * m13;\r\n const det_10_32 = m10 * m32 - m30 * m12;\r\n const det_10_31 = m10 * m31 - m30 * m11;\r\n const det_12_23 = m12 * m23 - m22 * m13;\r\n const det_11_23 = m11 * m23 - m21 * m13;\r\n const det_11_22 = m11 * m22 - m21 * m12;\r\n const det_10_23 = m10 * m23 - m20 * m13;\r\n const det_10_22 = m10 * m22 - m20 * m12;\r\n const det_10_21 = m10 * m21 - m20 * m11;\r\n\r\n const cofact_10 = -(m01 * det_22_33 - m02 * det_21_33 + m03 * det_21_32);\r\n const cofact_11 = +(m00 * det_22_33 - m02 * det_20_33 + m03 * det_20_32);\r\n const cofact_12 = -(m00 * det_21_33 - m01 * det_20_33 + m03 * det_20_31);\r\n const cofact_13 = +(m00 * det_21_32 - m01 * det_20_32 + m02 * det_20_31);\r\n\r\n const cofact_20 = +(m01 * det_12_33 - m02 * det_11_33 + m03 * det_11_32);\r\n const cofact_21 = -(m00 * det_12_33 - m02 * det_10_33 + m03 * det_10_32);\r\n const cofact_22 = +(m00 * det_11_33 - m01 * det_10_33 + m03 * det_10_31);\r\n const cofact_23 = -(m00 * det_11_32 - m01 * det_10_32 + m02 * det_10_31);\r\n\r\n const cofact_30 = -(m01 * det_12_23 - m02 * det_11_23 + m03 * det_11_22);\r\n const cofact_31 = +(m00 * det_12_23 - m02 * det_10_23 + m03 * det_10_22);\r\n const cofact_32 = -(m00 * det_11_23 - m01 * det_10_23 + m03 * det_10_21);\r\n const cofact_33 = +(m00 * det_11_22 - m01 * det_10_22 + m02 * det_10_21);\r\n\r\n target[0] = cofact_00 * detInv;\r\n target[1] = cofact_10 * detInv;\r\n target[2] = cofact_20 * detInv;\r\n target[3] = cofact_30 * detInv;\r\n target[4] = cofact_01 * detInv;\r\n target[5] = cofact_11 * detInv;\r\n target[6] = cofact_21 * detInv;\r\n target[7] = cofact_31 * detInv;\r\n target[8] = cofact_02 * detInv;\r\n target[9] = cofact_12 * detInv;\r\n target[10] = cofact_22 * detInv;\r\n target[11] = cofact_32 * detInv;\r\n target[12] = cofact_03 * detInv;\r\n target[13] = cofact_13 * detInv;\r\n target[14] = cofact_23 * detInv;\r\n target[15] = cofact_33 * detInv;\r\n\r\n return true;\r\n}\r\n"]}
1
+ {"version":3,"file":"thinMath.matrix.functions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Maths/ThinMaths/thinMath.matrix.functions.ts"],"names":[],"mappings":"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G,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;IAEzE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAEhC,OAAO,IAAI,CAAC;AAChB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { DeepImmutable } from \"core/types\";\r\nimport type { IMatrixLike } from \"../math.like\";\r\n\r\n/** @internal */\r\nexport class MatrixManagement {\r\n /** @internal */\r\n static _UpdateFlagSeed = 0;\r\n}\r\n\r\nfunction SetMatrixData(\r\n result: IMatrixLike,\r\n m0: number,\r\n m1: number,\r\n m2: number,\r\n m3: number,\r\n m4: number,\r\n m5: number,\r\n m6: number,\r\n m7: number,\r\n m8: number,\r\n m9: number,\r\n m10: number,\r\n m11: number,\r\n m12: number,\r\n m13: number,\r\n m14: number,\r\n m15: number\r\n): void {\r\n const mat = result.asArray();\r\n mat[0] = m0;\r\n mat[1] = m1;\r\n mat[2] = m2;\r\n mat[3] = m3;\r\n mat[4] = m4;\r\n mat[5] = m5;\r\n mat[6] = m6;\r\n mat[7] = m7;\r\n mat[8] = m8;\r\n mat[9] = m9;\r\n mat[10] = m10;\r\n mat[11] = m11;\r\n mat[12] = m12;\r\n mat[13] = m13;\r\n mat[14] = m14;\r\n mat[15] = m15;\r\n\r\n MarkAsDirty(result);\r\n}\r\n\r\n/**\r\n * Marks the given matrix as dirty\r\n * @param matrix defines the matrix to mark as dirty\r\n */\r\nexport function MarkAsDirty(matrix: IMatrixLike): void {\r\n matrix.updateFlag = MatrixManagement._UpdateFlagSeed++;\r\n}\r\n\r\n/**\r\n * Sets the given matrix to the identity matrix\r\n * @param result defines the target matrix\r\n */\r\nexport function IdentityMatrixToRef(result: IMatrixLike): void {\r\n SetMatrixData(result, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0);\r\n}\r\n\r\n/**\r\n * Creates a new translation matrix.\r\n * @param x defines the x coordinate\r\n * @param y defines the y coordinate\r\n * @param z defines the z coordinate\r\n * @param result defines the target matrix\r\n */\r\nexport function TranslationMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void {\r\n SetMatrixData(result, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, x, y, z, 1.0);\r\n}\r\n\r\n/**\r\n * Creates a new scaling matrix.\r\n * @param x defines the scale factor on X axis\r\n * @param y defines the scale factor on Y axis\r\n * @param z defines the scale factor on Z axis\r\n * @param result defines the target matrix\r\n */\r\nexport function ScalingMatrixToRef(x: number, y: number, z: number, result: IMatrixLike): void {\r\n SetMatrixData(result, x, 0.0, 0.0, 0.0, 0.0, y, 0.0, 0.0, 0.0, 0.0, z, 0.0, 0.0, 0.0, 0.0, 1.0);\r\n}\r\n\r\n/**\r\n * Multiplies two matrices and stores the result in the target array.\r\n * @param a defines the first matrix\r\n * @param b defines the second matrix\r\n * @param output defines the target array\r\n * @param offset defines the offset in the target array where to store the result (0 by default)\r\n */\r\nexport function MultiplyMatricesToArray(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, output: Float32Array | Array<number>, offset = 0): void {\r\n const m = a.asArray();\r\n const otherM = b.asArray();\r\n const tm0 = m[0],\r\n tm1 = m[1],\r\n tm2 = m[2],\r\n tm3 = m[3];\r\n const tm4 = m[4],\r\n tm5 = m[5],\r\n tm6 = m[6],\r\n tm7 = m[7];\r\n const tm8 = m[8],\r\n tm9 = m[9],\r\n tm10 = m[10],\r\n tm11 = m[11];\r\n const tm12 = m[12],\r\n tm13 = m[13],\r\n tm14 = m[14],\r\n tm15 = m[15];\r\n\r\n const om0 = otherM[0],\r\n om1 = otherM[1],\r\n om2 = otherM[2],\r\n om3 = otherM[3];\r\n const om4 = otherM[4],\r\n om5 = otherM[5],\r\n om6 = otherM[6],\r\n om7 = otherM[7];\r\n const om8 = otherM[8],\r\n om9 = otherM[9],\r\n om10 = otherM[10],\r\n om11 = otherM[11];\r\n const om12 = otherM[12],\r\n om13 = otherM[13],\r\n om14 = otherM[14],\r\n om15 = otherM[15];\r\n output[offset] = tm0 * om0 + tm1 * om4 + tm2 * om8 + tm3 * om12;\r\n output[offset + 1] = tm0 * om1 + tm1 * om5 + tm2 * om9 + tm3 * om13;\r\n output[offset + 2] = tm0 * om2 + tm1 * om6 + tm2 * om10 + tm3 * om14;\r\n output[offset + 3] = tm0 * om3 + tm1 * om7 + tm2 * om11 + tm3 * om15;\r\n\r\n output[offset + 4] = tm4 * om0 + tm5 * om4 + tm6 * om8 + tm7 * om12;\r\n output[offset + 5] = tm4 * om1 + tm5 * om5 + tm6 * om9 + tm7 * om13;\r\n output[offset + 6] = tm4 * om2 + tm5 * om6 + tm6 * om10 + tm7 * om14;\r\n output[offset + 7] = tm4 * om3 + tm5 * om7 + tm6 * om11 + tm7 * om15;\r\n\r\n output[offset + 8] = tm8 * om0 + tm9 * om4 + tm10 * om8 + tm11 * om12;\r\n output[offset + 9] = tm8 * om1 + tm9 * om5 + tm10 * om9 + tm11 * om13;\r\n output[offset + 10] = tm8 * om2 + tm9 * om6 + tm10 * om10 + tm11 * om14;\r\n output[offset + 11] = tm8 * om3 + tm9 * om7 + tm10 * om11 + tm11 * om15;\r\n\r\n output[offset + 12] = tm12 * om0 + tm13 * om4 + tm14 * om8 + tm15 * om12;\r\n output[offset + 13] = tm12 * om1 + tm13 * om5 + tm14 * om9 + tm15 * om13;\r\n output[offset + 14] = tm12 * om2 + tm13 * om6 + tm14 * om10 + tm15 * om14;\r\n output[offset + 15] = tm12 * om3 + tm13 * om7 + tm14 * om11 + tm15 * om15;\r\n}\r\n\r\n/**\r\n * Multiplies two matrices and stores the result in a third matrix.\r\n * @param a defines the first matrix\r\n * @param b defines the second matrix\r\n * @param result defines the target matrix\r\n * @param offset defines the offset in the target matrix where to store the result (0 by default)\r\n */\r\nexport function MultiplyMatricesToRef(a: DeepImmutable<IMatrixLike>, b: DeepImmutable<IMatrixLike>, result: IMatrixLike, offset = 0): void {\r\n MultiplyMatricesToArray(a, b, result.asArray(), offset);\r\n MarkAsDirty(result);\r\n}\r\n\r\n/**\r\n * Populates the given matrix with the current matrix values\r\n * @param matrix defines the source matrix\r\n * @param target defines the target matrix\r\n */\r\nexport function CopyMatrixToRef(matrix: DeepImmutable<IMatrixLike>, target: IMatrixLike) {\r\n CopyMatrixToArray(matrix, target.asArray());\r\n MarkAsDirty(target);\r\n}\r\n\r\n/**\r\n * Populates the given array from the starting index with the current matrix values\r\n * @param matrix defines the source matrix\r\n * @param array defines the target array\r\n * @param offset defines the offset in the target array where to start storing values\r\n */\r\nexport function CopyMatrixToArray(matrix: DeepImmutable<IMatrixLike>, array: Float32Array | Array<number>, offset: number = 0) {\r\n const source = matrix.asArray();\r\n array[offset] = source[0];\r\n array[offset + 1] = source[1];\r\n array[offset + 2] = source[2];\r\n array[offset + 3] = source[3];\r\n array[offset + 4] = source[4];\r\n array[offset + 5] = source[5];\r\n array[offset + 6] = source[6];\r\n array[offset + 7] = source[7];\r\n array[offset + 8] = source[8];\r\n array[offset + 9] = source[9];\r\n array[offset + 10] = source[10];\r\n array[offset + 11] = source[11];\r\n array[offset + 12] = source[12];\r\n array[offset + 13] = source[13];\r\n array[offset + 14] = source[14];\r\n array[offset + 15] = source[15];\r\n}\r\n\r\n/**\r\n * Inverts the given matrix and stores the result in the target matrix\r\n * @param source defines the source matrix\r\n * @param target defines the target matrix\r\n * @returns true if the matrix was inverted successfully, false otherwise\r\n */\r\nexport function InvertMatrixToRef(source: DeepImmutable<IMatrixLike>, target: IMatrixLike) {\r\n const result = InvertMatrixToArray(source, target.asArray());\r\n\r\n if (result) {\r\n MarkAsDirty(target);\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Inverts the given matrix and stores the result in the target array\r\n * @param source defines the source matrix\r\n * @param target defines the target array\r\n * @returns true if the matrix was inverted successfully, false otherwise\r\n */\r\nexport function InvertMatrixToArray(source: DeepImmutable<IMatrixLike>, target: Float32Array | Array<number>) {\r\n // the inverse of a matrix is the transpose of cofactor matrix divided by the determinant\r\n const m = source.asArray();\r\n const m00 = m[0],\r\n m01 = m[1],\r\n m02 = m[2],\r\n m03 = m[3];\r\n const m10 = m[4],\r\n m11 = m[5],\r\n m12 = m[6],\r\n m13 = m[7];\r\n const m20 = m[8],\r\n m21 = m[9],\r\n m22 = m[10],\r\n m23 = m[11];\r\n const m30 = m[12],\r\n m31 = m[13],\r\n m32 = m[14],\r\n m33 = m[15];\r\n\r\n const det_22_33 = m22 * m33 - m32 * m23;\r\n const det_21_33 = m21 * m33 - m31 * m23;\r\n const det_21_32 = m21 * m32 - m31 * m22;\r\n const det_20_33 = m20 * m33 - m30 * m23;\r\n const det_20_32 = m20 * m32 - m22 * m30;\r\n const det_20_31 = m20 * m31 - m30 * m21;\r\n\r\n const cofact_00 = +(m11 * det_22_33 - m12 * det_21_33 + m13 * det_21_32);\r\n const cofact_01 = -(m10 * det_22_33 - m12 * det_20_33 + m13 * det_20_32);\r\n const cofact_02 = +(m10 * det_21_33 - m11 * det_20_33 + m13 * det_20_31);\r\n const cofact_03 = -(m10 * det_21_32 - m11 * det_20_32 + m12 * det_20_31);\r\n\r\n const det = m00 * cofact_00 + m01 * cofact_01 + m02 * cofact_02 + m03 * cofact_03;\r\n\r\n if (det === 0) {\r\n // Not invertible\r\n return false;\r\n }\r\n\r\n const detInv = 1 / det;\r\n const det_12_33 = m12 * m33 - m32 * m13;\r\n const det_11_33 = m11 * m33 - m31 * m13;\r\n const det_11_32 = m11 * m32 - m31 * m12;\r\n const det_10_33 = m10 * m33 - m30 * m13;\r\n const det_10_32 = m10 * m32 - m30 * m12;\r\n const det_10_31 = m10 * m31 - m30 * m11;\r\n const det_12_23 = m12 * m23 - m22 * m13;\r\n const det_11_23 = m11 * m23 - m21 * m13;\r\n const det_11_22 = m11 * m22 - m21 * m12;\r\n const det_10_23 = m10 * m23 - m20 * m13;\r\n const det_10_22 = m10 * m22 - m20 * m12;\r\n const det_10_21 = m10 * m21 - m20 * m11;\r\n\r\n const cofact_10 = -(m01 * det_22_33 - m02 * det_21_33 + m03 * det_21_32);\r\n const cofact_11 = +(m00 * det_22_33 - m02 * det_20_33 + m03 * det_20_32);\r\n const cofact_12 = -(m00 * det_21_33 - m01 * det_20_33 + m03 * det_20_31);\r\n const cofact_13 = +(m00 * det_21_32 - m01 * det_20_32 + m02 * det_20_31);\r\n\r\n const cofact_20 = +(m01 * det_12_33 - m02 * det_11_33 + m03 * det_11_32);\r\n const cofact_21 = -(m00 * det_12_33 - m02 * det_10_33 + m03 * det_10_32);\r\n const cofact_22 = +(m00 * det_11_33 - m01 * det_10_33 + m03 * det_10_31);\r\n const cofact_23 = -(m00 * det_11_32 - m01 * det_10_32 + m02 * det_10_31);\r\n\r\n const cofact_30 = -(m01 * det_12_23 - m02 * det_11_23 + m03 * det_11_22);\r\n const cofact_31 = +(m00 * det_12_23 - m02 * det_10_23 + m03 * det_10_22);\r\n const cofact_32 = -(m00 * det_11_23 - m01 * det_10_23 + m03 * det_10_21);\r\n const cofact_33 = +(m00 * det_11_22 - m01 * det_10_22 + m02 * det_10_21);\r\n\r\n target[0] = cofact_00 * detInv;\r\n target[1] = cofact_10 * detInv;\r\n target[2] = cofact_20 * detInv;\r\n target[3] = cofact_30 * detInv;\r\n target[4] = cofact_01 * detInv;\r\n target[5] = cofact_11 * detInv;\r\n target[6] = cofact_21 * detInv;\r\n target[7] = cofact_31 * detInv;\r\n target[8] = cofact_02 * detInv;\r\n target[9] = cofact_12 * detInv;\r\n target[10] = cofact_22 * detInv;\r\n target[11] = cofact_32 * detInv;\r\n target[12] = cofact_03 * detInv;\r\n target[13] = cofact_13 * detInv;\r\n target[14] = cofact_23 * detInv;\r\n target[15] = cofact_33 * detInv;\r\n\r\n return true;\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import type { float, int, DeepImmutable, Tuple } from "../types.js";
1
+ import type { float, int, Tuple } from "../types.js";
2
2
  /**
3
3
  * @internal
4
4
  */
@@ -59,7 +59,7 @@ export interface IPlaneLike {
59
59
  * @internal
60
60
  */
61
61
  export interface IMatrixLike {
62
- asArray(): DeepImmutable<Tuple<number, 16>>;
62
+ asArray(): Tuple<number, 16>;
63
63
  updateFlag: int;
64
64
  }
65
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"math.like.js","sourceRoot":"","sources":["../../../../dev/core/src/Maths/math.like.ts"],"names":[],"mappings":"","sourcesContent":["import type { float, int, DeepImmutable, Tuple } from \"../types\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IColor3Like {\r\n r: float;\r\n g: float;\r\n b: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IColor4Like extends IColor3Like {\r\n a: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector2Like {\r\n x: float;\r\n y: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector3Like extends IVector2Like {\r\n z: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector3LikeInternal {\r\n _x: number;\r\n _y: number;\r\n _z: number;\r\n _isDirty?: boolean;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector4Like extends IVector3Like {\r\n w: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IQuaternionLike extends IVector3Like {\r\n w: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IPlaneLike {\r\n normal: IVector3Like;\r\n d: float;\r\n normalize(): void;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IMatrixLike {\r\n asArray(): DeepImmutable<Tuple<number, 16>>;\r\n updateFlag: int;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IViewportLike {\r\n x: float;\r\n y: float;\r\n width: float;\r\n height: float;\r\n}\r\n"]}
1
+ {"version":3,"file":"math.like.js","sourceRoot":"","sources":["../../../../dev/core/src/Maths/math.like.ts"],"names":[],"mappings":"","sourcesContent":["import type { float, int, Tuple } from \"../types\";\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IColor3Like {\r\n r: float;\r\n g: float;\r\n b: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IColor4Like extends IColor3Like {\r\n a: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector2Like {\r\n x: float;\r\n y: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector3Like extends IVector2Like {\r\n z: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector3LikeInternal {\r\n _x: number;\r\n _y: number;\r\n _z: number;\r\n _isDirty?: boolean;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IVector4Like extends IVector3Like {\r\n w: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IQuaternionLike extends IVector3Like {\r\n w: float;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IPlaneLike {\r\n normal: IVector3Like;\r\n d: float;\r\n normalize(): void;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IMatrixLike {\r\n asArray(): Tuple<number, 16>;\r\n updateFlag: int;\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nexport interface IViewportLike {\r\n x: float;\r\n y: float;\r\n width: float;\r\n height: float;\r\n}\r\n"]}
@@ -1864,14 +1864,6 @@ export declare class Vector3 implements Vector<Tuple<number, 3>, IVector3LikeInt
1864
1864
  * Vector4 class created for EulerAngle class conversion to Quaternion
1865
1865
  */
1866
1866
  export declare class Vector4 implements Vector<Tuple<number, 4>, IVector4Like>, IVector4Like {
1867
- /** [0] x value of the vector */
1868
- x: number;
1869
- /** [0] y value of the vector */
1870
- y: number;
1871
- /** [0] z value of the vector */
1872
- z: number;
1873
- /** [0] w value of the vector */
1874
- w: number;
1875
1867
  /**
1876
1868
  * If the first vector is flagged with integers (as everything is 0,0,0,0), V8 stores all of the properties as integers internally because it doesn't know any better yet.
1877
1869
  * If subsequent vectors are created with non-integer values, V8 determines that it would be best to represent these properties as doubles instead of integers,
@@ -1889,6 +1881,28 @@ export declare class Vector4 implements Vector<Tuple<number, 4>, IVector4Like>,
1889
1881
  * @see Tensor.rank
1890
1882
  */
1891
1883
  readonly rank: 1;
1884
+ /** @internal */
1885
+ _x: number;
1886
+ /** @internal */
1887
+ _y: number;
1888
+ /** @internal */
1889
+ _z: number;
1890
+ /** @internal */
1891
+ _w: number;
1892
+ /** @internal */
1893
+ _isDirty: boolean;
1894
+ /** Gets or sets the x coordinate */
1895
+ get x(): number;
1896
+ set x(value: number);
1897
+ /** Gets or sets the y coordinate */
1898
+ get y(): number;
1899
+ set y(value: number);
1900
+ /** Gets or sets the z coordinate */
1901
+ get z(): number;
1902
+ set z(value: number);
1903
+ /** Gets or sets the w coordinate */
1904
+ get w(): number;
1905
+ set w(value: number);
1892
1906
  /**
1893
1907
  * Creates a Vector4 object from the given floats.
1894
1908
  * @param x x value of the vector
@@ -1896,15 +1910,7 @@ export declare class Vector4 implements Vector<Tuple<number, 4>, IVector4Like>,
1896
1910
  * @param z z value of the vector
1897
1911
  * @param w w value of the vector
1898
1912
  */
1899
- constructor(
1900
- /** [0] x value of the vector */
1901
- x?: number,
1902
- /** [0] y value of the vector */
1903
- y?: number,
1904
- /** [0] z value of the vector */
1905
- z?: number,
1906
- /** [0] w value of the vector */
1907
- w?: number);
1913
+ constructor(x?: number, y?: number, z?: number, w?: number);
1908
1914
  /**
1909
1915
  * Returns the string with the Vector4 coordinates.
1910
1916
  * @returns a string containing all the vector values