@babylonjs/core 7.4.0 → 7.6.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 (235) hide show
  1. package/Audio/sound.js +3 -0
  2. package/Audio/sound.js.map +1 -1
  3. package/Buffers/storageBuffer.d.ts +2 -2
  4. package/Buffers/storageBuffer.js.map +1 -1
  5. package/Cameras/arcRotateCamera.js +3 -0
  6. package/Cameras/arcRotateCamera.js.map +1 -1
  7. package/Cameras/flyCamera.js +3 -0
  8. package/Cameras/flyCamera.js.map +1 -1
  9. package/Cameras/followCamera.js +4 -0
  10. package/Cameras/followCamera.js.map +1 -1
  11. package/Cameras/freeCamera.js +3 -0
  12. package/Cameras/freeCamera.js.map +1 -1
  13. package/Engines/Extensions/index.d.ts +0 -3
  14. package/Engines/Extensions/index.js +0 -3
  15. package/Engines/Extensions/index.js.map +1 -1
  16. package/Engines/WebGPU/Extensions/index.d.ts +0 -3
  17. package/Engines/WebGPU/Extensions/index.js +0 -3
  18. package/Engines/WebGPU/Extensions/index.js.map +1 -1
  19. package/Engines/abstractEngine.d.ts +11 -63
  20. package/Engines/abstractEngine.js +7 -7
  21. package/Engines/abstractEngine.js.map +1 -1
  22. package/Engines/nativeEngine.js +2 -2
  23. package/Engines/nativeEngine.js.map +1 -1
  24. package/Engines/thinEngine.d.ts +2 -2
  25. package/Engines/thinEngine.functions.d.ts +2 -10
  26. package/Engines/thinEngine.functions.js +1 -20
  27. package/Engines/thinEngine.functions.js.map +1 -1
  28. package/Engines/thinEngine.js +27 -11
  29. package/Engines/thinEngine.js.map +1 -1
  30. package/Engines/webgpuEngine.d.ts +54 -2
  31. package/Engines/webgpuEngine.js +147 -0
  32. package/Engines/webgpuEngine.js.map +1 -1
  33. package/Inputs/scene.inputManager.d.ts +1 -0
  34. package/Inputs/scene.inputManager.js +1 -0
  35. package/Inputs/scene.inputManager.js.map +1 -1
  36. package/Lights/directionalLight.js +3 -0
  37. package/Lights/directionalLight.js.map +1 -1
  38. package/Lights/hemisphericLight.js +3 -0
  39. package/Lights/hemisphericLight.js.map +1 -1
  40. package/Lights/pointLight.js +3 -0
  41. package/Lights/pointLight.js.map +1 -1
  42. package/Lights/spotLight.js +3 -0
  43. package/Lights/spotLight.js.map +1 -1
  44. package/Loading/Plugins/babylonFileLoader.js +25 -14
  45. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  46. package/Materials/Background/backgroundMaterial.js +1 -2
  47. package/Materials/Background/backgroundMaterial.js.map +1 -1
  48. package/Materials/GreasedLine/greasedLinePluginMaterial.js +7 -3
  49. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  50. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -1
  51. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  52. package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +1 -1
  53. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  54. package/Materials/Node/Blocks/Dual/fogBlock.d.ts +1 -1
  55. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  56. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +1 -1
  57. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  58. package/Materials/Node/Blocks/Dual/sceneDepthBlock.d.ts +1 -1
  59. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  60. package/Materials/Node/Blocks/Dual/textureBlock.d.ts +1 -1
  61. package/Materials/Node/Blocks/Dual/textureBlock.js +5 -1
  62. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  63. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +1 -1
  64. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  65. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +1 -1
  66. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  67. package/Materials/Node/Blocks/Fragment/screenSizeBlock.d.ts +1 -1
  68. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  69. package/Materials/Node/Blocks/Fragment/shadowMapBlock.d.ts +1 -1
  70. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
  71. package/Materials/Node/Blocks/Input/animatedInputBlockTypes.d.ts +2 -1
  72. package/Materials/Node/Blocks/Input/animatedInputBlockTypes.js +1 -0
  73. package/Materials/Node/Blocks/Input/animatedInputBlockTypes.js.map +1 -1
  74. package/Materials/Node/Blocks/Input/inputBlock.d.ts +1 -1
  75. package/Materials/Node/Blocks/Input/inputBlock.js +16 -0
  76. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  77. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +1 -1
  78. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  79. package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -1
  80. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  81. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
  82. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  83. package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +1 -1
  84. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  85. package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +1 -1
  86. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  87. package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +1 -1
  88. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  89. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -1
  90. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  91. package/Materials/Node/Blocks/baseMathBlock.js +2 -4
  92. package/Materials/Node/Blocks/baseMathBlock.js.map +1 -1
  93. package/Materials/Node/Blocks/modBlock.js +7 -1
  94. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  95. package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -1
  96. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  97. package/Materials/Node/nodeMaterial.d.ts +2 -4
  98. package/Materials/Node/nodeMaterial.js +1 -3
  99. package/Materials/Node/nodeMaterial.js.map +1 -1
  100. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +34 -14
  101. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +87 -9
  102. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  103. package/Materials/Node/nodeMaterialBuildState.d.ts +1 -1
  104. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  105. package/Materials/PBR/pbrBaseMaterial.d.ts +1 -2
  106. package/Materials/PBR/pbrBaseMaterial.js +1 -2
  107. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  108. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  109. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  110. package/Materials/Textures/htmlElementTexture.d.ts +0 -1
  111. package/Materials/Textures/htmlElementTexture.js +7 -2
  112. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  113. package/Materials/Textures/videoTexture.js +4 -2
  114. package/Materials/Textures/videoTexture.js.map +1 -1
  115. package/Materials/effect.d.ts +4 -0
  116. package/Materials/effect.functions.d.ts +1 -1
  117. package/Materials/effect.functions.js +6 -4
  118. package/Materials/effect.functions.js.map +1 -1
  119. package/Materials/effect.js +1 -1
  120. package/Materials/effect.js.map +1 -1
  121. package/Materials/effect.webgl.functions.js +3 -3
  122. package/Materials/effect.webgl.functions.js.map +1 -1
  123. package/Materials/imageProcessingConfiguration.d.ts +5 -0
  124. package/Materials/imageProcessingConfiguration.defines.d.ts +2 -4
  125. package/Materials/imageProcessingConfiguration.defines.js +1 -2
  126. package/Materials/imageProcessingConfiguration.defines.js.map +1 -1
  127. package/Materials/imageProcessingConfiguration.js +26 -11
  128. package/Materials/imageProcessingConfiguration.js.map +1 -1
  129. package/Materials/materialPluginBase.js +3 -0
  130. package/Materials/materialPluginBase.js.map +1 -1
  131. package/Materials/meshDebugPluginMaterial.js +2 -2
  132. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  133. package/Materials/shaderMaterial.js +18 -8
  134. package/Materials/shaderMaterial.js.map +1 -1
  135. package/Materials/standardMaterial.d.ts +1 -2
  136. package/Materials/standardMaterial.js +1 -2
  137. package/Materials/standardMaterial.js.map +1 -1
  138. package/Maths/math.color.d.ts +85 -82
  139. package/Maths/math.color.js +34 -27
  140. package/Maths/math.color.js.map +1 -1
  141. package/Maths/math.vector.d.ts +202 -202
  142. package/Maths/math.vector.js +133 -130
  143. package/Maths/math.vector.js.map +1 -1
  144. package/Maths/tensor.d.ts +44 -42
  145. package/Maths/tensor.js.map +1 -1
  146. package/Meshes/Compression/dracoCompression.d.ts +7 -0
  147. package/Meshes/Compression/dracoCompression.js +14 -0
  148. package/Meshes/Compression/dracoCompression.js.map +1 -1
  149. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +6 -0
  150. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  151. package/Meshes/instancedMesh.js +3 -0
  152. package/Meshes/instancedMesh.js.map +1 -1
  153. package/Misc/dumpTools.js +11 -0
  154. package/Misc/dumpTools.js.map +1 -1
  155. package/Misc/fileTools.d.ts +9 -3
  156. package/Misc/fileTools.js +17 -14
  157. package/Misc/fileTools.js.map +1 -1
  158. package/Misc/greasedLineTools.js +7 -1
  159. package/Misc/greasedLineTools.js.map +1 -1
  160. package/Misc/sceneSerializer.js +9 -1
  161. package/Misc/sceneSerializer.js.map +1 -1
  162. package/Misc/textureTools.d.ts +2 -0
  163. package/Misc/textureTools.js +2 -0
  164. package/Misc/textureTools.js.map +1 -1
  165. package/Misc/tools.d.ts +5 -6
  166. package/Misc/tools.js +9 -9
  167. package/Misc/tools.js.map +1 -1
  168. package/Misc/typeStore.d.ts +4 -0
  169. package/Misc/typeStore.js +11 -0
  170. package/Misc/typeStore.js.map +1 -1
  171. package/NOTICE.md +8 -0
  172. package/Particles/baseParticleSystem.js +3 -0
  173. package/Particles/baseParticleSystem.js.map +1 -1
  174. package/Particles/computeShaderParticleSystem.d.ts +2 -2
  175. package/Particles/computeShaderParticleSystem.js.map +1 -1
  176. package/Physics/v1/Plugins/ammoJSPlugin.js +39 -10
  177. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  178. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js +4 -0
  179. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.js.map +1 -1
  180. package/PostProcesses/imageProcessingPostProcess.js +14 -5
  181. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  182. package/Rendering/GlobalIllumination/giRSMManager.d.ts +6 -0
  183. package/Rendering/GlobalIllumination/giRSMManager.js +15 -1
  184. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  185. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +22 -20
  186. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  187. package/Rendering/renderingGroup.js +1 -1
  188. package/Rendering/renderingGroup.js.map +1 -1
  189. package/Shaders/ShadersInclude/imageProcessingFunctions.js +8 -5
  190. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  191. package/Shaders/ShadersInclude/screenSpaceRayTrace.js +8 -0
  192. package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  193. package/Shaders/lod.fragment.d.ts +5 -0
  194. package/Shaders/lod.fragment.js +12 -0
  195. package/Shaders/lod.fragment.js.map +1 -0
  196. package/Shaders/lodCube.fragment.d.ts +5 -0
  197. package/Shaders/lodCube.fragment.js +30 -0
  198. package/Shaders/lodCube.fragment.js.map +1 -0
  199. package/Shaders/screenSpaceReflection2.fragment.js +7 -1
  200. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  201. package/Shaders/ssao2.fragment.js +1 -1
  202. package/Shaders/ssao2.fragment.js.map +1 -1
  203. package/XR/features/WebXRNearInteraction.d.ts +6 -0
  204. package/XR/features/WebXRNearInteraction.js +14 -2
  205. package/XR/features/WebXRNearInteraction.js.map +1 -1
  206. package/XR/webXRManagedOutputCanvas.d.ts +2 -0
  207. package/XR/webXRManagedOutputCanvas.js +14 -6
  208. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  209. package/abstractScene.js +3 -0
  210. package/abstractScene.js.map +1 -1
  211. package/assets/glslang/glslang.js +113 -0
  212. package/assets/glslang/glslang.wasm +0 -0
  213. package/assets/twgsl/twgsl.js +53 -0
  214. package/assets/twgsl/twgsl.wasm +0 -0
  215. package/package.json +1 -1
  216. package/scene.js +3 -0
  217. package/scene.js.map +1 -1
  218. package/Engines/Extensions/engine.externalTexture.d.ts +0 -18
  219. package/Engines/Extensions/engine.externalTexture.js +0 -10
  220. package/Engines/Extensions/engine.externalTexture.js.map +0 -1
  221. package/Engines/Extensions/engine.storageBuffer.d.ts +0 -39
  222. package/Engines/Extensions/engine.storageBuffer.js +0 -16
  223. package/Engines/Extensions/engine.storageBuffer.js.map +0 -1
  224. package/Engines/Extensions/engine.textureSampler.d.ts +0 -12
  225. package/Engines/Extensions/engine.textureSampler.js +0 -6
  226. package/Engines/Extensions/engine.textureSampler.js.map +0 -1
  227. package/Engines/WebGPU/Extensions/engine.externalTexture.d.ts +0 -28
  228. package/Engines/WebGPU/Extensions/engine.externalTexture.js +0 -18
  229. package/Engines/WebGPU/Extensions/engine.externalTexture.js.map +0 -1
  230. package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +0 -50
  231. package/Engines/WebGPU/Extensions/engine.storageBuffer.js +0 -88
  232. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +0 -1
  233. package/Engines/WebGPU/Extensions/engine.textureSampler.d.ts +0 -22
  234. package/Engines/WebGPU/Extensions/engine.textureSampler.js +0 -9
  235. package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import type { DeepImmutable, FloatArray, Tuple } from "../types";
2
- import type { Tensor } from "./tensor";
3
2
  import type { IColor3Like, IColor4Like } from "./math.like";
3
+ import type { Tensor } from "./tensor";
4
4
  /**
5
5
  * Class used to hold a RGB color
6
6
  */
7
- export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
7
+ export declare class Color3 implements Tensor<Tuple<number, 3>, IColor3Like>, IColor3Like {
8
8
  /**
9
9
  * Defines the red component (between 0 and 1, default is 0)
10
10
  */
@@ -94,20 +94,20 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
94
94
  * @param otherColor defines the second operand
95
95
  * @returns the new Color3 object
96
96
  */
97
- multiply(otherColor: DeepImmutable<this>): this;
97
+ multiply(otherColor: DeepImmutable<IColor3Like>): Color3;
98
98
  /**
99
99
  * Multiply the rgb values of the Color3 and the given Color3 and stores the result in the object "result"
100
100
  * @param otherColor defines the second operand
101
101
  * @param result defines the Color3 object where to store the result
102
102
  * @returns the result Color3
103
103
  */
104
- multiplyToRef<T extends this>(otherColor: DeepImmutable<this>, result: T): T;
104
+ multiplyToRef<T extends IColor3Like>(otherColor: DeepImmutable<IColor3Like>, result: T): T;
105
105
  /**
106
106
  * Multiplies the current Color3 coordinates by the given ones
107
107
  * @param otherColor defines the second operand
108
108
  * @returns the current updated Color3
109
109
  */
110
- multiplyInPlace(otherColor: DeepImmutable<Color3>): this;
110
+ multiplyInPlace(otherColor: DeepImmutable<IColor3Like>): this;
111
111
  /**
112
112
  * Returns a new Color3 set with the result of the multiplication of the current Color3 coordinates by the given floats
113
113
  * @param r defines the r coordinate of the operand
@@ -115,34 +115,34 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
115
115
  * @param b defines the b coordinate of the operand
116
116
  * @returns the new Color3
117
117
  */
118
- multiplyByFloats(r: number, g: number, b: number): this;
118
+ multiplyByFloats(r: number, g: number, b: number): Color3;
119
119
  /**
120
120
  * @internal
121
121
  * Do not use
122
122
  */
123
- divide(_other: DeepImmutable<this>): this;
123
+ divide(_other: DeepImmutable<IColor3Like>): never;
124
124
  /**
125
125
  * @internal
126
126
  * Do not use
127
127
  */
128
- divideToRef<T extends this>(_other: DeepImmutable<this>, _result: T): T;
128
+ divideToRef(_other: DeepImmutable<IColor3Like>, _result: IColor3Like): never;
129
129
  /**
130
130
  * @internal
131
131
  * Do not use
132
132
  */
133
- divideInPlace(_other: DeepImmutable<this>): this;
133
+ divideInPlace(_other: DeepImmutable<IColor3Like>): never;
134
134
  /**
135
135
  * Updates the current Color3 with the minimal coordinate values between its and the given color ones
136
136
  * @param other defines the second operand
137
137
  * @returns the current updated Color3
138
138
  */
139
- minimizeInPlace(other: DeepImmutable<this>): this;
139
+ minimizeInPlace(other: DeepImmutable<IColor3Like>): this;
140
140
  /**
141
141
  * Updates the current Color3 with the maximal coordinate values between its and the given color ones.
142
142
  * @param other defines the second operand
143
143
  * @returns the current updated Color3
144
144
  */
145
- maximizeInPlace(other: DeepImmutable<this>): this;
145
+ maximizeInPlace(other: DeepImmutable<IColor3Like>): this;
146
146
  /**
147
147
  * Updates the current Color3 with the minimal coordinate values between its and the given coordinates
148
148
  * @param r defines the r coordinate of the operand
@@ -163,28 +163,28 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
163
163
  * @internal
164
164
  * Do not use
165
165
  */
166
- floorToRef<T extends this>(_result: T): T;
166
+ floorToRef(_result: IColor3Like): never;
167
167
  /**
168
168
  * @internal
169
169
  * Do not use
170
170
  */
171
- floor(): this;
171
+ floor(): never;
172
172
  /**
173
173
  * @internal
174
174
  * Do not use
175
175
  */
176
- fractToRef<T extends this>(_result: T): T;
176
+ fractToRef(_result: IColor3Like): never;
177
177
  /**
178
178
  * @internal
179
179
  * Do not use
180
180
  */
181
- fract(): this;
181
+ fract(): never;
182
182
  /**
183
183
  * Determines equality between Color3 objects
184
184
  * @param otherColor defines the second operand
185
185
  * @returns true if the rgb values are equal to the given ones
186
186
  */
187
- equals(otherColor: DeepImmutable<this>): boolean;
187
+ equals(otherColor: DeepImmutable<IColor3Like>): boolean;
188
188
  /**
189
189
  * Alias for equalsToFloats
190
190
  * @param r red color component
@@ -207,28 +207,28 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
207
207
  * @param epsilon defines the minimal distance to define values as equals
208
208
  * @returns true if both colors are distant less than epsilon
209
209
  */
210
- equalsWithEpsilon(otherColor: DeepImmutable<this>, epsilon?: number): boolean;
210
+ equalsWithEpsilon(otherColor: DeepImmutable<IColor3Like>, epsilon?: number): boolean;
211
211
  /**
212
212
  * @internal
213
213
  * Do not use
214
214
  */
215
- negate(): this;
215
+ negate(): never;
216
216
  /**
217
217
  * @internal
218
218
  * Do not use
219
219
  */
220
- negateInPlace(): this;
220
+ negateInPlace(): never;
221
221
  /**
222
222
  * @internal
223
223
  * Do not use
224
224
  */
225
- negateToRef<T extends this>(_result: T): T;
225
+ negateToRef(_result: IColor3Like): never;
226
226
  /**
227
227
  * Creates a new Color3 with the current Color3 values multiplied by scale
228
228
  * @param scale defines the scaling factor to apply
229
229
  * @returns a new Color3 object
230
230
  */
231
- scale(scale: number): this;
231
+ scale(scale: number): Color3;
232
232
  /**
233
233
  * Multiplies the Color3 values by the float "scale"
234
234
  * @param scale defines the scaling factor to apply
@@ -241,14 +241,14 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
241
241
  * @param result defines the Color3 object where to store the result
242
242
  * @returns the result Color3
243
243
  */
244
- scaleToRef<T extends this>(scale: number, result: T): T;
244
+ scaleToRef<T extends IColor3Like>(scale: number, result: T): T;
245
245
  /**
246
246
  * Scale the current Color3 values by a factor and add the result to a given Color3
247
247
  * @param scale defines the scale factor
248
248
  * @param result defines color to store the result into
249
249
  * @returns the result Color3
250
250
  */
251
- scaleAndAddToRef<T extends this>(scale: number, result: T): T;
251
+ scaleAndAddToRef<T extends IColor3Like>(scale: number, result: T): T;
252
252
  /**
253
253
  * Clamps the rgb values by the min and max values and stores the result into "result"
254
254
  * @param min defines minimum clamping value (default is 0)
@@ -256,19 +256,19 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
256
256
  * @param result defines color to store the result into
257
257
  * @returns the result Color3
258
258
  */
259
- clampToRef<T extends this>(min: number | undefined, max: number | undefined, result: T): T;
259
+ clampToRef<T extends IColor3Like>(min: number | undefined, max: number | undefined, result: T): T;
260
260
  /**
261
261
  * Creates a new Color3 set with the added values of the current Color3 and of the given one
262
262
  * @param otherColor defines the second operand
263
263
  * @returns the new Color3
264
264
  */
265
- add(otherColor: DeepImmutable<this>): this;
265
+ add(otherColor: DeepImmutable<IColor3Like>): Color3;
266
266
  /**
267
267
  * Adds the given color to the current Color3
268
268
  * @param otherColor defines the second operand
269
269
  * @returns the current updated Color3
270
270
  */
271
- addInPlace(otherColor: DeepImmutable<this>): this;
271
+ addInPlace(otherColor: DeepImmutable<IColor3Like>): this;
272
272
  /**
273
273
  * Adds the given coordinates to the current Color3
274
274
  * @param r defines the r coordinate of the operand
@@ -283,26 +283,26 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
283
283
  * @param result defines Color3 object to store the result into
284
284
  * @returns the unmodified current Color3
285
285
  */
286
- addToRef<T extends this>(otherColor: DeepImmutable<this>, result: T): T;
286
+ addToRef<T extends IColor3Like>(otherColor: DeepImmutable<IColor3Like>, result: T): T;
287
287
  /**
288
288
  * Returns a new Color3 set with the subtracted values of the given one from the current Color3
289
289
  * @param otherColor defines the second operand
290
290
  * @returns the new Color3
291
291
  */
292
- subtract(otherColor: DeepImmutable<this>): this;
292
+ subtract(otherColor: DeepImmutable<IColor3Like>): Color3;
293
293
  /**
294
294
  * Stores the result of the subtraction of given one from the current Color3 rgb values into "result"
295
295
  * @param otherColor defines the second operand
296
296
  * @param result defines Color3 object to store the result into
297
297
  * @returns the unmodified current Color3
298
298
  */
299
- subtractToRef<T extends this>(otherColor: DeepImmutable<this>, result: T): T;
299
+ subtractToRef<T extends IColor3Like>(otherColor: DeepImmutable<IColor3Like>, result: T): T;
300
300
  /**
301
301
  * Subtract the given color from the current Color3
302
302
  * @param otherColor defines the second operand
303
303
  * @returns the current updated Color3
304
304
  */
305
- subtractInPlace(otherColor: DeepImmutable<this>): this;
305
+ subtractInPlace(otherColor: DeepImmutable<IColor3Like>): this;
306
306
  /**
307
307
  * Returns a new Color3 set with the subtraction of the given floats from the current Color3 coordinates
308
308
  * @param r defines the r coordinate of the operand
@@ -310,7 +310,7 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
310
310
  * @param b defines the b coordinate of the operand
311
311
  * @returns the resulting Color3
312
312
  */
313
- subtractFromFloats(r: number, g: number, b: number): this;
313
+ subtractFromFloats(r: number, g: number, b: number): Color3;
314
314
  /**
315
315
  * Subtracts the given floats from the current Color3 coordinates and set the given color "result" with this result
316
316
  * @param r defines the r coordinate of the operand
@@ -319,18 +319,18 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
319
319
  * @param result defines the Color3 object where to store the result
320
320
  * @returns the result
321
321
  */
322
- subtractFromFloatsToRef<T extends Color3>(r: number, g: number, b: number, result: T): T;
322
+ subtractFromFloatsToRef<T extends IColor3Like>(r: number, g: number, b: number, result: T): T;
323
323
  /**
324
324
  * Copy the current object
325
325
  * @returns a new Color3 copied the current one
326
326
  */
327
- clone(): this;
327
+ clone(): Color3;
328
328
  /**
329
329
  * Copies the rgb values from the source in the current Color3
330
330
  * @param source defines the source Color3 object
331
331
  * @returns the updated Color3 object
332
332
  */
333
- copyFrom(source: DeepImmutable<this>): this;
333
+ copyFrom(source: DeepImmutable<IColor3Like>): this;
334
334
  /**
335
335
  * Updates the Color3 rgb values from the given floats
336
336
  * @param r defines the red component to read from
@@ -362,38 +362,39 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
362
362
  * Converts current color in rgb space to HSV values
363
363
  * @returns a new color3 representing the HSV values
364
364
  */
365
- toHSV(): this;
365
+ toHSV(): Color3;
366
366
  /**
367
367
  * Converts current color in rgb space to HSV values
368
368
  * @param result defines the Color3 where to store the HSV values
369
+ * @returns the updated result
369
370
  */
370
- toHSVToRef(result: this): void;
371
+ toHSVToRef<T extends IColor3Like>(result: T): T;
371
372
  /**
372
373
  * Computes a new Color3 converted from the current one to linear space
373
374
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
374
375
  * @returns a new Color3 object
375
376
  */
376
- toLinearSpace(exact?: boolean): this;
377
+ toLinearSpace(exact?: boolean): Color3;
377
378
  /**
378
379
  * Converts the Color3 values to linear space and stores the result in "convertedColor"
379
380
  * @param convertedColor defines the Color3 object where to store the linear space version
380
381
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
381
382
  * @returns the unmodified Color3
382
383
  */
383
- toLinearSpaceToRef(convertedColor: this, exact?: boolean): this;
384
+ toLinearSpaceToRef(convertedColor: IColor3Like, exact?: boolean): this;
384
385
  /**
385
386
  * Computes a new Color3 converted from the current one to gamma space
386
387
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
387
388
  * @returns a new Color3 object
388
389
  */
389
- toGammaSpace(exact?: boolean): this;
390
+ toGammaSpace(exact?: boolean): Color3;
390
391
  /**
391
392
  * Converts the Color3 values to gamma space and stores the result in "convertedColor"
392
393
  * @param convertedColor defines the Color3 object where to store the gamma space version
393
394
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
394
395
  * @returns the unmodified Color3
395
396
  */
396
- toGammaSpaceToRef(convertedColor: this, exact?: boolean): this;
397
+ toGammaSpaceToRef(convertedColor: IColor3Like, exact?: boolean): this;
397
398
  private static _BlackReadOnly;
398
399
  /**
399
400
  * Converts Hue, saturation and value to a Color3 (RGB)
@@ -401,8 +402,9 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
401
402
  * @param saturation defines the saturation (value between 0 and 1)
402
403
  * @param value defines the value (value between 0 and 1)
403
404
  * @param result defines the Color3 where to store the RGB values
405
+ * @returns the updated result
404
406
  */
405
- static HSVtoRGBToRef(hue: number, saturation: number, value: number, result: Color3): void;
407
+ static HSVtoRGBToRef<T extends IColor3Like>(hue: number, saturation: number, value: number, result: T): T;
406
408
  /**
407
409
  * Converts Hue, saturation and value to a new Color3 (RGB)
408
410
  * @param hue defines the hue (value between 0 and 360)
@@ -548,7 +550,7 @@ export declare class Color3 implements Tensor<Tuple<number, 3>>, IColor3Like {
548
550
  /**
549
551
  * Class used to hold a RBGA color
550
552
  */
551
- export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
553
+ export declare class Color4 implements Tensor<Tuple<number, 4>, IColor4Like>, IColor4Like {
552
554
  /**
553
555
  * Defines the red component (between 0 and 1, default is 0)
554
556
  */
@@ -621,26 +623,26 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
621
623
  * @param otherColor defines the second operand
622
624
  * @returns true if the rgba values are equal to the given ones
623
625
  */
624
- equals(otherColor: DeepImmutable<this>): boolean;
626
+ equals(otherColor: DeepImmutable<IColor4Like>): boolean;
625
627
  /**
626
628
  * Creates a new Color4 set with the added values of the current Color4 and of the given one
627
629
  * @param otherColor defines the second operand
628
630
  * @returns a new Color4 object
629
631
  */
630
- add(otherColor: DeepImmutable<this>): this;
632
+ add(otherColor: DeepImmutable<IColor4Like>): Color4;
631
633
  /**
632
634
  * Updates the given color "result" with the result of the addition of the current Color4 and the given one.
633
635
  * @param otherColor the color to add
634
636
  * @param result the color to store the result
635
637
  * @returns result input
636
638
  */
637
- addToRef<T extends Color4>(otherColor: DeepImmutable<this>, result: T): T;
639
+ addToRef<T extends IColor4Like>(otherColor: DeepImmutable<IColor4Like>, result: T): T;
638
640
  /**
639
641
  * Adds in place the given Color4 values to the current Color4 object
640
642
  * @param otherColor defines the second operand
641
643
  * @returns the current updated Color4 object
642
644
  */
643
- addInPlace(otherColor: DeepImmutable<this>): this;
645
+ addInPlace(otherColor: DeepImmutable<IColor4Like>): this;
644
646
  /**
645
647
  * Adds the given coordinates to the current Color4
646
648
  * @param r defines the r coordinate of the operand
@@ -655,20 +657,20 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
655
657
  * @param otherColor defines the second operand
656
658
  * @returns a new Color4 object
657
659
  */
658
- subtract(otherColor: DeepImmutable<this>): this;
660
+ subtract(otherColor: DeepImmutable<IColor4Like>): Color4;
659
661
  /**
660
662
  * Subtracts the given ones from the current Color4 values and stores the results in "result"
661
663
  * @param otherColor defines the second operand
662
664
  * @param result defines the Color4 object where to store the result
663
665
  * @returns the result Color4 object
664
666
  */
665
- subtractToRef<T extends this>(otherColor: DeepImmutable<this>, result: T): T;
667
+ subtractToRef<T extends IColor4Like>(otherColor: DeepImmutable<IColor4Like>, result: T): T;
666
668
  /**
667
669
  * Subtract in place the given color from the current Color4.
668
670
  * @param otherColor the color to subtract
669
671
  * @returns the updated Color4.
670
672
  */
671
- subtractInPlace(otherColor: DeepImmutable<Color4>): this;
673
+ subtractInPlace(otherColor: DeepImmutable<IColor4Like>): this;
672
674
  /**
673
675
  * Returns a new Color4 set with the result of the subtraction of the given floats from the current Color4 coordinates.
674
676
  * @param r value to subtract
@@ -677,7 +679,7 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
677
679
  * @param a value to subtract
678
680
  * @returns new color containing the result
679
681
  */
680
- subtractFromFloats(r: number, g: number, b: number, a: number): this;
682
+ subtractFromFloats(r: number, g: number, b: number, a: number): Color4;
681
683
  /**
682
684
  * Sets the given color "result" set with the result of the subtraction of the given floats from the current Color4 coordinates.
683
685
  * @param r value to subtract
@@ -687,13 +689,13 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
687
689
  * @param result the color to store the result in
688
690
  * @returns result input
689
691
  */
690
- subtractFromFloatsToRef<T extends Color4>(r: number, g: number, b: number, a: number, result: T): T;
692
+ subtractFromFloatsToRef<T extends IColor4Like>(r: number, g: number, b: number, a: number, result: T): T;
691
693
  /**
692
694
  * Creates a new Color4 with the current Color4 values multiplied by scale
693
695
  * @param scale defines the scaling factor to apply
694
696
  * @returns a new Color4 object
695
697
  */
696
- scale(scale: number): this;
698
+ scale(scale: number): Color4;
697
699
  /**
698
700
  * Multiplies the Color4 values by the float "scale"
699
701
  * @param scale defines the scaling factor to apply
@@ -706,14 +708,14 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
706
708
  * @param result defines the Color4 object where to store the result
707
709
  * @returns the result Color4
708
710
  */
709
- scaleToRef<T extends this>(scale: number, result: T): T;
711
+ scaleToRef<T extends IColor4Like>(scale: number, result: T): T;
710
712
  /**
711
713
  * Scale the current Color4 values by a factor and add the result to a given Color4
712
714
  * @param scale defines the scale factor
713
715
  * @param result defines the Color4 object where to store the result
714
716
  * @returns the result Color4
715
717
  */
716
- scaleAndAddToRef<T extends this>(scale: number, result: T): T;
718
+ scaleAndAddToRef<T extends IColor4Like>(scale: number, result: T): T;
717
719
  /**
718
720
  * Clamps the rgb values by the min and max values and stores the result into "result"
719
721
  * @param min defines minimum clamping value (default is 0)
@@ -721,26 +723,26 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
721
723
  * @param result defines color to store the result into.
722
724
  * @returns the result Color4
723
725
  */
724
- clampToRef<T extends this>(min: number | undefined, max: number | undefined, result: T): T;
726
+ clampToRef<T extends IColor4Like>(min: number | undefined, max: number | undefined, result: T): T;
725
727
  /**
726
728
  * Multiply an Color4 value by another and return a new Color4 object
727
729
  * @param color defines the Color4 value to multiply by
728
730
  * @returns a new Color4 object
729
731
  */
730
- multiply(color: DeepImmutable<this>): this;
732
+ multiply(color: DeepImmutable<IColor4Like>): Color4;
731
733
  /**
732
734
  * Multiply a Color4 value by another and push the result in a reference value
733
735
  * @param color defines the Color4 value to multiply by
734
736
  * @param result defines the Color4 to fill the result in
735
737
  * @returns the result Color4
736
738
  */
737
- multiplyToRef<T extends this>(color: DeepImmutable<this>, result: T): T;
739
+ multiplyToRef<T extends IColor4Like>(color: DeepImmutable<IColor4Like>, result: T): T;
738
740
  /**
739
741
  * Multiplies in place the current Color4 by the given one.
740
742
  * @param otherColor color to multiple with
741
743
  * @returns the updated Color4.
742
744
  */
743
- multiplyInPlace(otherColor: DeepImmutable<Color4>): this;
745
+ multiplyInPlace(otherColor: DeepImmutable<IColor4Like>): this;
744
746
  /**
745
747
  * Returns a new Color4 set with the multiplication result of the given floats and the current Color4 coordinates.
746
748
  * @param r value multiply with
@@ -749,34 +751,34 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
749
751
  * @param a value multiply with
750
752
  * @returns resulting new color
751
753
  */
752
- multiplyByFloats(r: number, g: number, b: number, a: number): this;
754
+ multiplyByFloats(r: number, g: number, b: number, a: number): Color4;
753
755
  /**
754
756
  * @internal
755
757
  * Do not use
756
758
  */
757
- divide(_other: DeepImmutable<this>): this;
759
+ divide(_other: DeepImmutable<IColor4Like>): never;
758
760
  /**
759
761
  * @internal
760
762
  * Do not use
761
763
  */
762
- divideToRef<T extends this>(_other: DeepImmutable<this>, _result: T): T;
764
+ divideToRef(_other: DeepImmutable<IColor4Like>, _result: IColor4Like): never;
763
765
  /**
764
766
  * @internal
765
767
  * Do not use
766
768
  */
767
- divideInPlace(_other: DeepImmutable<this>): this;
769
+ divideInPlace(_other: DeepImmutable<IColor4Like>): never;
768
770
  /**
769
771
  * Updates the Color4 coordinates with the minimum values between its own and the given color ones
770
772
  * @param other defines the second operand
771
773
  * @returns the current updated Color4
772
774
  */
773
- minimizeInPlace(other: DeepImmutable<Color4>): this;
775
+ minimizeInPlace(other: DeepImmutable<IColor4Like>): this;
774
776
  /**
775
777
  * Updates the Color4 coordinates with the maximum values between its own and the given color ones
776
778
  * @param other defines the second operand
777
779
  * @returns the current updated Color4
778
780
  */
779
- maximizeInPlace(other: DeepImmutable<Color4>): this;
781
+ maximizeInPlace(other: DeepImmutable<IColor4Like>): this;
780
782
  /**
781
783
  * Updates the current Color4 with the minimal coordinate values between its and the given coordinates
782
784
  * @param r defines the r coordinate of the operand
@@ -799,44 +801,44 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
799
801
  * @internal
800
802
  * Do not use
801
803
  */
802
- floorToRef<T extends this>(_result: T): T;
804
+ floorToRef(_result: IColor4Like): never;
803
805
  /**
804
806
  * @internal
805
807
  * Do not use
806
808
  */
807
- floor(): this;
809
+ floor(): never;
808
810
  /**
809
811
  * @internal
810
812
  * Do not use
811
813
  */
812
- fractToRef<T extends this>(_result: T): T;
814
+ fractToRef(_result: IColor4Like): never;
813
815
  /**
814
816
  * @internal
815
817
  * Do not use
816
818
  */
817
- fract(): this;
819
+ fract(): never;
818
820
  /**
819
821
  * @internal
820
822
  * Do not use
821
823
  */
822
- negate(): this;
824
+ negate(): never;
823
825
  /**
824
826
  * @internal
825
827
  * Do not use
826
828
  */
827
- negateInPlace(): this;
829
+ negateInPlace(): never;
828
830
  /**
829
831
  * @internal
830
832
  * Do not use
831
833
  */
832
- negateToRef<T extends this>(_result: T): T;
834
+ negateToRef(_result: IColor4Like): never;
833
835
  /**
834
836
  * Boolean : True if the current Color4 coordinates are each beneath the distance "epsilon" from the given color ones.
835
837
  * @param otherColor color to compare against
836
838
  * @param epsilon (Default: very small number)
837
839
  * @returns true if they are equal
838
840
  */
839
- equalsWithEpsilon(otherColor: DeepImmutable<Color4>, epsilon?: number): boolean;
841
+ equalsWithEpsilon(otherColor: DeepImmutable<IColor4Like>, epsilon?: number): boolean;
840
842
  /**
841
843
  * Boolean : True if the given floats are strictly equal to the current Color4 coordinates.
842
844
  * @param x x value to compare against
@@ -865,13 +867,13 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
865
867
  * Creates a new Color4 copied from the current one
866
868
  * @returns a new Color4 object
867
869
  */
868
- clone(): this;
870
+ clone(): Color4;
869
871
  /**
870
872
  * Copies the given Color4 values into the current one
871
873
  * @param source defines the source Color4 object
872
874
  * @returns the current updated Color4 object
873
875
  */
874
- copyFrom(source: DeepImmutable<Color4>): this;
876
+ copyFrom(source: DeepImmutable<IColor4Like>): this;
875
877
  /**
876
878
  * Copies the given float values into the current one
877
879
  * @param r defines the red component to read from
@@ -914,7 +916,7 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
914
916
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
915
917
  * @returns the unmodified Color4
916
918
  */
917
- toLinearSpaceToRef(convertedColor: Color4, exact?: boolean): Color4;
919
+ toLinearSpaceToRef(convertedColor: IColor4Like, exact?: boolean): this;
918
920
  /**
919
921
  * Computes a new Color4 converted from the current one to gamma space
920
922
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
@@ -927,7 +929,7 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
927
929
  * @param exact defines if the conversion will be done in an exact way which is slower but more accurate (default is false)
928
930
  * @returns the unmodified Color4
929
931
  */
930
- toGammaSpaceToRef(convertedColor: Color4, exact?: boolean): Color4;
932
+ toGammaSpaceToRef(convertedColor: IColor4Like, exact?: boolean): this;
931
933
  /**
932
934
  * Creates a new Color4 from the string containing valid hexadecimal values.
933
935
  *
@@ -950,15 +952,16 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
950
952
  * @param amount defines the gradient factor
951
953
  * @returns a new Color4 object
952
954
  */
953
- static Lerp(left: DeepImmutable<Color4>, right: DeepImmutable<Color4>, amount: number): Color4;
955
+ static Lerp(left: DeepImmutable<IColor4Like>, right: DeepImmutable<IColor4Like>, amount: number): Color4;
954
956
  /**
955
957
  * Set the given "result" with the linearly interpolated values of "amount" between the left Color4 object and the right Color4 object
956
958
  * @param left defines the start value
957
959
  * @param right defines the end value
958
960
  * @param amount defines the gradient factor
959
961
  * @param result defines the Color4 object where to store data
962
+ * @returns the updated result
960
963
  */
961
- static LerpToRef(left: DeepImmutable<Color4>, right: DeepImmutable<Color4>, amount: number, result: Color4): void;
964
+ static LerpToRef<T extends IColor4Like>(left: DeepImmutable<IColor4Like>, right: DeepImmutable<IColor4Like>, amount: number, result: T): T;
962
965
  /**
963
966
  * Interpolate between two Color4 using Hermite interpolation
964
967
  * @param value1 defines first Color4
@@ -968,7 +971,7 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
968
971
  * @param amount defines the target Color4
969
972
  * @returns the new interpolated Color4
970
973
  */
971
- static Hermite(value1: DeepImmutable<Color4>, tangent1: DeepImmutable<Color4>, value2: DeepImmutable<Color4>, tangent2: DeepImmutable<Color4>, amount: number): Color4;
974
+ static Hermite(value1: DeepImmutable<IColor4Like>, tangent1: DeepImmutable<IColor4Like>, value2: DeepImmutable<IColor4Like>, tangent2: DeepImmutable<IColor4Like>, amount: number): Color4;
972
975
  /**
973
976
  * Returns a new Color4 which is the 1st derivative of the Hermite spline defined by the colors "value1", "value2", "tangent1", "tangent2".
974
977
  * @param value1 defines the first control point
@@ -978,7 +981,7 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
978
981
  * @param time define where the derivative must be done
979
982
  * @returns 1st derivative
980
983
  */
981
- static Hermite1stDerivative(value1: DeepImmutable<Color4>, tangent1: DeepImmutable<Color4>, value2: DeepImmutable<Color4>, tangent2: DeepImmutable<Color4>, time: number): Color4;
984
+ static Hermite1stDerivative(value1: DeepImmutable<IColor4Like>, tangent1: DeepImmutable<IColor4Like>, value2: DeepImmutable<IColor4Like>, tangent2: DeepImmutable<IColor4Like>, time: number): Color4;
982
985
  /**
983
986
  * Update a Color4 with the 1st derivative of the Hermite spline defined by the colors "value1", "value2", "tangent1", "tangent2".
984
987
  * @param value1 defines the first control point
@@ -988,14 +991,14 @@ export declare class Color4 implements Tensor<Tuple<number, 4>>, IColor4Like {
988
991
  * @param time define where the derivative must be done
989
992
  * @param result define where to store the derivative
990
993
  */
991
- static Hermite1stDerivativeToRef(value1: DeepImmutable<Color4>, tangent1: DeepImmutable<Color4>, value2: DeepImmutable<Color4>, tangent2: DeepImmutable<Color4>, time: number, result: Color4): void;
994
+ static Hermite1stDerivativeToRef(value1: DeepImmutable<IColor4Like>, tangent1: DeepImmutable<IColor4Like>, value2: DeepImmutable<IColor4Like>, tangent2: DeepImmutable<IColor4Like>, time: number, result: IColor4Like): void;
992
995
  /**
993
996
  * Creates a new Color4 from a Color3 and an alpha value
994
997
  * @param color3 defines the source Color3 to read from
995
998
  * @param alpha defines the alpha component (1.0 by default)
996
999
  * @returns a new Color4 object
997
1000
  */
998
- static FromColor3(color3: DeepImmutable<Color3>, alpha?: number): Color4;
1001
+ static FromColor3(color3: DeepImmutable<IColor3Like>, alpha?: number): Color4;
999
1002
  /**
1000
1003
  * Creates a new Color4 from the starting index element of the given array
1001
1004
  * @param array defines the source array to read from