@babylonjs/core 5.22.1 → 5.24.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 (351) hide show
  1. package/Actions/abstractActionManager.d.ts +6 -6
  2. package/Actions/abstractActionManager.js +1 -1
  3. package/Actions/abstractActionManager.js.map +1 -1
  4. package/Actions/actionManager.d.ts +5 -5
  5. package/Actions/actionManager.js +5 -5
  6. package/Actions/actionManager.js.map +1 -1
  7. package/Animations/animatable.js +2 -1
  8. package/Animations/animatable.js.map +1 -1
  9. package/Animations/animation.js +137 -139
  10. package/Animations/animation.js.map +1 -1
  11. package/Animations/animationGroup.d.ts +3 -3
  12. package/Animations/animationGroup.js +3 -3
  13. package/Animations/animationGroup.js.map +1 -1
  14. package/Animations/runtimeAnimation.js +6 -7
  15. package/Animations/runtimeAnimation.js.map +1 -1
  16. package/Audio/audioSceneComponent.d.ts +1 -1
  17. package/Audio/audioSceneComponent.js.map +1 -1
  18. package/Audio/sound.d.ts +2 -1
  19. package/Audio/sound.js +21 -9
  20. package/Audio/sound.js.map +1 -1
  21. package/Behaviors/Cameras/autoRotationBehavior.d.ts +1 -1
  22. package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
  23. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  24. package/Behaviors/Cameras/bouncingBehavior.d.ts +1 -1
  25. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  26. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  27. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  28. package/Behaviors/Cameras/framingBehavior.js +1 -1
  29. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  30. package/Bones/bone.d.ts +1 -1
  31. package/Bones/bone.js +1 -1
  32. package/Bones/bone.js.map +1 -1
  33. package/Bones/skeleton.d.ts +2 -2
  34. package/Bones/skeleton.js +11 -5
  35. package/Bones/skeleton.js.map +1 -1
  36. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +3 -22
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  38. package/Cameras/Inputs/BaseCameraPointersInput.js +3 -3
  39. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  40. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +1 -11
  41. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  42. package/Cameras/Inputs/flyCameraMouseInput.js +3 -3
  43. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  44. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -4
  45. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  46. package/Cameras/Inputs/freeCameraMouseInput.js +3 -3
  47. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  48. package/Cameras/arcRotateCamera.d.ts +1 -1
  49. package/Cameras/arcRotateCamera.js +1 -1
  50. package/Cameras/arcRotateCamera.js.map +1 -1
  51. package/Cameras/camera.d.ts +2 -2
  52. package/Cameras/camera.js +2 -2
  53. package/Cameras/camera.js.map +1 -1
  54. package/Cameras/freeCamera.d.ts +1 -1
  55. package/Cameras/freeCamera.js +1 -1
  56. package/Cameras/freeCamera.js.map +1 -1
  57. package/Cameras/gamepadCamera.d.ts +1 -1
  58. package/Cameras/gamepadCamera.js +1 -1
  59. package/Cameras/gamepadCamera.js.map +1 -1
  60. package/Cameras/targetCamera.d.ts +1 -1
  61. package/Cameras/targetCamera.js +1 -1
  62. package/Cameras/targetCamera.js.map +1 -1
  63. package/Cameras/touchCamera.d.ts +1 -1
  64. package/Cameras/touchCamera.js +1 -1
  65. package/Cameras/touchCamera.js.map +1 -1
  66. package/Cameras/universalCamera.d.ts +1 -1
  67. package/Cameras/universalCamera.js +1 -1
  68. package/Cameras/universalCamera.js.map +1 -1
  69. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  70. package/Cameras/virtualJoysticksCamera.js +1 -1
  71. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  72. package/Culling/boundingBox.d.ts +2 -2
  73. package/Culling/boundingBox.js +2 -2
  74. package/Culling/boundingBox.js.map +1 -1
  75. package/Culling/ray.d.ts +1 -1
  76. package/Culling/ray.js +1 -1
  77. package/Culling/ray.js.map +1 -1
  78. package/Debug/debugLayer.d.ts +1 -1
  79. package/Debug/debugLayer.js +1 -1
  80. package/Debug/debugLayer.js.map +1 -1
  81. package/DeviceInput/webDeviceInputSystem.js +20 -2
  82. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  83. package/Engines/Extensions/engine.multiRender.js +8 -10
  84. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  85. package/Engines/Extensions/engine.query.d.ts +2 -2
  86. package/Engines/Extensions/engine.query.js.map +1 -1
  87. package/Engines/ICanvas.d.ts +11 -0
  88. package/Engines/ICanvas.js.map +1 -1
  89. package/Engines/WebGL/webGLPipelineContext.d.ts +29 -19
  90. package/Engines/WebGL/webGLPipelineContext.js +99 -311
  91. package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
  92. package/Engines/WebGL/webGLRenderTargetWrapper.js +1 -1
  93. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  94. package/Engines/engine.d.ts +2 -2
  95. package/Engines/engine.js +2 -2
  96. package/Engines/engine.js.map +1 -1
  97. package/Engines/nativeEngine.d.ts +2 -2
  98. package/Engines/nativeEngine.js +2 -2
  99. package/Engines/nativeEngine.js.map +1 -1
  100. package/Engines/renderTargetWrapper.d.ts +1 -0
  101. package/Engines/renderTargetWrapper.js +5 -2
  102. package/Engines/renderTargetWrapper.js.map +1 -1
  103. package/Engines/thinEngine.d.ts +6 -5
  104. package/Engines/thinEngine.js +11 -7
  105. package/Engines/thinEngine.js.map +1 -1
  106. package/Engines/webgpuEngine.js +4 -1
  107. package/Engines/webgpuEngine.js.map +1 -1
  108. package/Events/clipboardEvents.d.ts +1 -1
  109. package/Events/clipboardEvents.js +1 -1
  110. package/Events/clipboardEvents.js.map +1 -1
  111. package/Events/deviceInputEvents.d.ts +11 -4
  112. package/Events/deviceInputEvents.js.map +1 -1
  113. package/Gamepads/Controllers/windowsMotionController.d.ts +1 -1
  114. package/Gamepads/Controllers/windowsMotionController.js +1 -1
  115. package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
  116. package/Gizmos/boundingBoxGizmo.d.ts +4 -0
  117. package/Gizmos/boundingBoxGizmo.js +6 -0
  118. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  119. package/Inputs/scene.inputManager.js +4 -4
  120. package/Inputs/scene.inputManager.js.map +1 -1
  121. package/Layers/effectLayer.d.ts +3 -3
  122. package/Layers/effectLayer.js +1 -1
  123. package/Layers/effectLayer.js.map +1 -1
  124. package/Layers/glowLayer.d.ts +3 -3
  125. package/Layers/glowLayer.js +2 -2
  126. package/Layers/glowLayer.js.map +1 -1
  127. package/Layers/highlightLayer.d.ts +3 -3
  128. package/Layers/highlightLayer.js +2 -2
  129. package/Layers/highlightLayer.js.map +1 -1
  130. package/Lights/directionalLight.d.ts +2 -2
  131. package/Lights/directionalLight.js +2 -2
  132. package/Lights/directionalLight.js.map +1 -1
  133. package/Lights/hemisphericLight.d.ts +3 -3
  134. package/Lights/hemisphericLight.js +3 -3
  135. package/Lights/hemisphericLight.js.map +1 -1
  136. package/Lights/light.d.ts +2 -2
  137. package/Lights/light.js +2 -2
  138. package/Lights/light.js.map +1 -1
  139. package/Lights/lightConstants.d.ts +1 -1
  140. package/Lights/lightConstants.js +1 -1
  141. package/Lights/lightConstants.js.map +1 -1
  142. package/Loading/Plugins/babylonFileLoader.js +3 -0
  143. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  144. package/Loading/sceneLoader.d.ts +1 -1
  145. package/Loading/sceneLoader.js.map +1 -1
  146. package/Materials/Background/backgroundMaterial.js +4 -0
  147. package/Materials/Background/backgroundMaterial.js.map +1 -1
  148. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +4 -1
  149. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  150. package/Materials/Node/nodeMaterial.d.ts +1 -1
  151. package/Materials/Node/nodeMaterial.js +5 -1
  152. package/Materials/Node/nodeMaterial.js.map +1 -1
  153. package/Materials/PBR/pbrBaseMaterial.js +4 -1
  154. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  155. package/Materials/Textures/Filtering/hdrFiltering.d.ts +1 -1
  156. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  157. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  158. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -1
  159. package/Materials/Textures/Procedurals/customProceduralTexture.js +9 -3
  160. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  161. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +9 -9
  162. package/Materials/Textures/Procedurals/proceduralTexture.js +9 -9
  163. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  164. package/Materials/Textures/colorGradingTexture.d.ts +1 -1
  165. package/Materials/Textures/colorGradingTexture.js +1 -1
  166. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  167. package/Materials/Textures/cubeTexture.d.ts +2 -2
  168. package/Materials/Textures/cubeTexture.js +2 -2
  169. package/Materials/Textures/cubeTexture.js.map +1 -1
  170. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  171. package/Materials/Textures/rawCubeTexture.js +1 -1
  172. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  173. package/Materials/Textures/renderTargetTexture.d.ts +3 -5
  174. package/Materials/Textures/renderTargetTexture.js +19 -19
  175. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  176. package/Materials/colorCurves.d.ts +3 -3
  177. package/Materials/colorCurves.js +3 -3
  178. package/Materials/colorCurves.js.map +1 -1
  179. package/Materials/effect.d.ts +27 -27
  180. package/Materials/effect.js +22 -288
  181. package/Materials/effect.js.map +1 -1
  182. package/Materials/fresnelParameters.d.ts +1 -1
  183. package/Materials/fresnelParameters.js +1 -1
  184. package/Materials/fresnelParameters.js.map +1 -1
  185. package/Materials/imageProcessingConfiguration.d.ts +4 -4
  186. package/Materials/imageProcessingConfiguration.js +4 -4
  187. package/Materials/imageProcessingConfiguration.js.map +1 -1
  188. package/Materials/shaderMaterial.d.ts +25 -25
  189. package/Materials/shaderMaterial.js +25 -25
  190. package/Materials/shaderMaterial.js.map +1 -1
  191. package/Materials/standardMaterial.js +4 -1
  192. package/Materials/standardMaterial.js.map +1 -1
  193. package/Maths/index.d.ts +1 -0
  194. package/Maths/index.js +1 -0
  195. package/Maths/index.js.map +1 -1
  196. package/Maths/math.functions.d.ts +2 -2
  197. package/Maths/math.functions.js +2 -2
  198. package/Maths/math.functions.js.map +1 -1
  199. package/Maths/math.polar.d.ts +77 -0
  200. package/Maths/math.polar.js +114 -0
  201. package/Maths/math.polar.js.map +1 -0
  202. package/Maths/math.scalar.d.ts +2 -2
  203. package/Maths/math.scalar.js +2 -2
  204. package/Maths/math.scalar.js.map +1 -1
  205. package/Maths/math.vector.d.ts +13 -12
  206. package/Maths/math.vector.js +13 -12
  207. package/Maths/math.vector.js.map +1 -1
  208. package/Meshes/abstractMesh.d.ts +1 -1
  209. package/Meshes/abstractMesh.js +13 -2
  210. package/Meshes/abstractMesh.js.map +1 -1
  211. package/Meshes/geometry.d.ts +3 -3
  212. package/Meshes/geometry.js +3 -3
  213. package/Meshes/geometry.js.map +1 -1
  214. package/Meshes/groundMesh.d.ts +5 -4
  215. package/Meshes/groundMesh.js +5 -4
  216. package/Meshes/groundMesh.js.map +1 -1
  217. package/Meshes/instancedMesh.d.ts +1 -1
  218. package/Meshes/instancedMesh.js +1 -1
  219. package/Meshes/instancedMesh.js.map +1 -1
  220. package/Meshes/mesh.d.ts +3 -3
  221. package/Meshes/mesh.js +7 -3
  222. package/Meshes/mesh.js.map +1 -1
  223. package/Meshes/subMesh.d.ts +1 -1
  224. package/Meshes/subMesh.js +1 -1
  225. package/Meshes/subMesh.js.map +1 -1
  226. package/Meshes/thinInstanceMesh.d.ts +1 -1
  227. package/Meshes/thinInstanceMesh.js.map +1 -1
  228. package/Meshes/transformNode.js +6 -0
  229. package/Meshes/transformNode.js.map +1 -1
  230. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +2 -2
  231. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  232. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  233. package/Misc/HighDynamicRange/hdr.d.ts +3 -3
  234. package/Misc/HighDynamicRange/hdr.js +3 -3
  235. package/Misc/HighDynamicRange/hdr.js.map +1 -1
  236. package/Misc/HighDynamicRange/panoramaToCubemap.d.ts +1 -1
  237. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  238. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  239. package/Misc/arrayTools.d.ts +13 -12
  240. package/Misc/arrayTools.js +70 -39
  241. package/Misc/arrayTools.js.map +1 -1
  242. package/Misc/assetsManager.d.ts +3 -3
  243. package/Misc/assetsManager.js +3 -3
  244. package/Misc/assetsManager.js.map +1 -1
  245. package/Misc/basis.js +17 -3
  246. package/Misc/basis.js.map +1 -1
  247. package/Misc/environmentTextureTools.d.ts +4 -4
  248. package/Misc/environmentTextureTools.js +5 -5
  249. package/Misc/environmentTextureTools.js.map +1 -1
  250. package/Misc/fileTools.d.ts +3 -3
  251. package/Misc/fileTools.js +19 -12
  252. package/Misc/fileTools.js.map +1 -1
  253. package/Misc/logger.js +1 -1
  254. package/Misc/logger.js.map +1 -1
  255. package/Misc/observable.d.ts +1 -1
  256. package/Misc/observable.js +1 -1
  257. package/Misc/observable.js.map +1 -1
  258. package/Misc/performanceMonitor.d.ts +3 -3
  259. package/Misc/performanceMonitor.js +3 -3
  260. package/Misc/performanceMonitor.js.map +1 -1
  261. package/Misc/rgbdTextureTools.d.ts +1 -1
  262. package/Misc/rgbdTextureTools.js +1 -1
  263. package/Misc/rgbdTextureTools.js.map +1 -1
  264. package/Misc/sceneOptimizer.d.ts +7 -7
  265. package/Misc/sceneOptimizer.js +7 -7
  266. package/Misc/sceneOptimizer.js.map +1 -1
  267. package/Misc/stringDictionary.d.ts +6 -6
  268. package/Misc/stringDictionary.js +6 -6
  269. package/Misc/stringDictionary.js.map +1 -1
  270. package/Misc/textureTools.d.ts +4 -4
  271. package/Misc/textureTools.js +4 -4
  272. package/Misc/textureTools.js.map +1 -1
  273. package/Misc/tools.d.ts +6 -6
  274. package/Misc/tools.js +6 -6
  275. package/Misc/tools.js.map +1 -1
  276. package/Misc/videoRecorder.d.ts +1 -1
  277. package/Misc/videoRecorder.js +1 -1
  278. package/Misc/videoRecorder.js.map +1 -1
  279. package/Offline/database.js +3 -3
  280. package/Offline/database.js.map +1 -1
  281. package/Particles/IParticleSystem.d.ts +1 -1
  282. package/Particles/IParticleSystem.js.map +1 -1
  283. package/Particles/gpuParticleSystem.d.ts +1 -1
  284. package/Particles/gpuParticleSystem.js +1 -1
  285. package/Particles/gpuParticleSystem.js.map +1 -1
  286. package/Particles/particleSystem.d.ts +1 -1
  287. package/Particles/particleSystem.js +1 -1
  288. package/Particles/particleSystem.js.map +1 -1
  289. package/Particles/solidParticleSystem.d.ts +4 -0
  290. package/Particles/solidParticleSystem.js +25 -3
  291. package/Particles/solidParticleSystem.js.map +1 -1
  292. package/Physics/Plugins/ammoJSPlugin.d.ts +1 -1
  293. package/Physics/Plugins/ammoJSPlugin.js +1 -1
  294. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  295. package/Physics/Plugins/oimoJSPlugin.js +1 -1
  296. package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
  297. package/Physics/physicsEngineComponent.d.ts +1 -1
  298. package/Physics/physicsEngineComponent.js +1 -1
  299. package/Physics/physicsEngineComponent.js.map +1 -1
  300. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +3 -3
  301. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  302. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +1 -2
  303. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  304. package/PostProcesses/blurPostProcess.d.ts +3 -3
  305. package/PostProcesses/blurPostProcess.js +3 -3
  306. package/PostProcesses/blurPostProcess.js.map +1 -1
  307. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +3 -3
  308. package/PostProcesses/volumetricLightScatteringPostProcess.js +3 -3
  309. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  310. package/Rendering/depthPeelingRenderer.d.ts +1 -0
  311. package/Rendering/depthPeelingRenderer.js +32 -5
  312. package/Rendering/depthPeelingRenderer.js.map +1 -1
  313. package/Rendering/edgesRenderer.d.ts +2 -2
  314. package/Rendering/edgesRenderer.js +1 -1
  315. package/Rendering/edgesRenderer.js.map +1 -1
  316. package/Rendering/geometryBufferRenderer.d.ts +4 -2
  317. package/Rendering/geometryBufferRenderer.js +5 -3
  318. package/Rendering/geometryBufferRenderer.js.map +1 -1
  319. package/Rendering/geometryBufferRendererSceneComponent.d.ts +2 -1
  320. package/Rendering/geometryBufferRendererSceneComponent.js +3 -2
  321. package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
  322. package/Rendering/prePassRenderer.d.ts +11 -3
  323. package/Rendering/prePassRenderer.js +18 -3
  324. package/Rendering/prePassRenderer.js.map +1 -1
  325. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  326. package/Rendering/subSurfaceConfiguration.js +2 -2
  327. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  328. package/Sprites/spriteSceneComponent.js +4 -1
  329. package/Sprites/spriteSceneComponent.js.map +1 -1
  330. package/XR/features/WebXRControllerTeleportation.d.ts +4 -0
  331. package/XR/features/WebXRControllerTeleportation.js +24 -19
  332. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  333. package/XR/motionController/webXRAbstractMotionController.d.ts +2 -2
  334. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  335. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  336. package/XR/motionController/webXRControllerComponent.d.ts +1 -1
  337. package/XR/motionController/webXRControllerComponent.js +1 -1
  338. package/XR/motionController/webXRControllerComponent.js.map +1 -1
  339. package/XR/motionController/webXRMotionControllerManager.d.ts +3 -3
  340. package/XR/motionController/webXRMotionControllerManager.js +3 -3
  341. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  342. package/node.d.ts +4 -4
  343. package/node.js +3 -3
  344. package/node.js.map +1 -1
  345. package/package.json +1 -1
  346. package/readme.md +0 -4
  347. package/scene.d.ts +80 -63
  348. package/scene.js +92 -46
  349. package/scene.js.map +1 -1
  350. package/sceneComponent.d.ts +1 -1
  351. package/sceneComponent.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"colorCurves.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/colorCurves.ts"],"names":[],"mappings":"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","sourcesContent":["import { SerializationHelper, serialize } from \"../Misc/decorators\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport type { Effect } from \"../Materials/effect\";\r\n\r\n/**\r\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\r\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\r\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\r\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\r\n */\r\nexport class ColorCurves {\r\n private _dirty = true;\r\n\r\n private _tempColor = new Color4(0, 0, 0, 0);\r\n\r\n private _globalCurve = new Color4(0, 0, 0, 0);\r\n private _highlightsCurve = new Color4(0, 0, 0, 0);\r\n private _midtonesCurve = new Color4(0, 0, 0, 0);\r\n private _shadowsCurve = new Color4(0, 0, 0, 0);\r\n\r\n private _positiveCurve = new Color4(0, 0, 0, 0);\r\n private _negativeCurve = new Color4(0, 0, 0, 0);\r\n\r\n @serialize()\r\n private _globalHue = 30;\r\n\r\n @serialize()\r\n private _globalDensity = 0;\r\n\r\n @serialize()\r\n private _globalSaturation = 0;\r\n\r\n @serialize()\r\n private _globalExposure = 0;\r\n\r\n /**\r\n * Gets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get globalHue(): number {\r\n return this._globalHue;\r\n }\r\n /**\r\n * Sets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set globalHue(value: number) {\r\n this._globalHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get globalDensity(): number {\r\n return this._globalDensity;\r\n }\r\n /**\r\n * Sets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set globalDensity(value: number) {\r\n this._globalDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get globalSaturation(): number {\r\n return this._globalSaturation;\r\n }\r\n /**\r\n * Sets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set globalSaturation(value: number) {\r\n this._globalSaturation = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Gets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get globalExposure(): number {\r\n return this._globalExposure;\r\n }\r\n /**\r\n * Sets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set globalExposure(value: number) {\r\n this._globalExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _highlightsHue = 30;\r\n\r\n @serialize()\r\n private _highlightsDensity = 0;\r\n\r\n @serialize()\r\n private _highlightsSaturation = 0;\r\n\r\n @serialize()\r\n private _highlightsExposure = 0;\r\n\r\n /**\r\n * Gets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get highlightsHue(): number {\r\n return this._highlightsHue;\r\n }\r\n /**\r\n * Sets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set highlightsHue(value: number) {\r\n this._highlightsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get highlightsDensity(): number {\r\n return this._highlightsDensity;\r\n }\r\n /**\r\n * Sets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set highlightsDensity(value: number) {\r\n this._highlightsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get highlightsSaturation(): number {\r\n return this._highlightsSaturation;\r\n }\r\n /**\r\n * Sets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set highlightsSaturation(value: number) {\r\n this._highlightsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get highlightsExposure(): number {\r\n return this._highlightsExposure;\r\n }\r\n /**\r\n * Sets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set highlightsExposure(value: number) {\r\n this._highlightsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _midtonesHue = 30;\r\n\r\n @serialize()\r\n private _midtonesDensity = 0;\r\n\r\n @serialize()\r\n private _midtonesSaturation = 0;\r\n\r\n @serialize()\r\n private _midtonesExposure = 0;\r\n\r\n /**\r\n * Gets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get midtonesHue(): number {\r\n return this._midtonesHue;\r\n }\r\n /**\r\n * Sets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set midtonesHue(value: number) {\r\n this._midtonesHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get midtonesDensity(): number {\r\n return this._midtonesDensity;\r\n }\r\n /**\r\n * Sets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set midtonesDensity(value: number) {\r\n this._midtonesDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get midtonesSaturation(): number {\r\n return this._midtonesSaturation;\r\n }\r\n /**\r\n * Sets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set midtonesSaturation(value: number) {\r\n this._midtonesSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get midtonesExposure(): number {\r\n return this._midtonesExposure;\r\n }\r\n /**\r\n * Sets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set midtonesExposure(value: number) {\r\n this._midtonesExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n private _shadowsHue = 30;\r\n private _shadowsDensity = 0;\r\n private _shadowsSaturation = 0;\r\n private _shadowsExposure = 0;\r\n\r\n /**\r\n * Gets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get shadowsHue(): number {\r\n return this._shadowsHue;\r\n }\r\n /**\r\n * Sets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set shadowsHue(value: number) {\r\n this._shadowsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get shadowsDensity(): number {\r\n return this._shadowsDensity;\r\n }\r\n /**\r\n * Sets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set shadowsDensity(value: number) {\r\n this._shadowsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get shadowsSaturation(): number {\r\n return this._shadowsSaturation;\r\n }\r\n /**\r\n * Sets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set shadowsSaturation(value: number) {\r\n this._shadowsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get shadowsExposure(): number {\r\n return this._shadowsExposure;\r\n }\r\n /**\r\n * Sets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set shadowsExposure(value: number) {\r\n this._shadowsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Returns the class name\r\n * @returns The class name\r\n */\r\n public getClassName(): string {\r\n return \"ColorCurves\";\r\n }\r\n\r\n /**\r\n * Binds the color curves to the shader.\r\n * @param colorCurves The color curve to bind\r\n * @param effect The effect to bind to\r\n * @param positiveUniform The positive uniform shader parameter\r\n * @param neutralUniform The neutral uniform shader parameter\r\n * @param negativeUniform The negative uniform shader parameter\r\n */\r\n public static Bind(\r\n colorCurves: ColorCurves,\r\n effect: Effect,\r\n positiveUniform = \"vCameraColorCurvePositive\",\r\n neutralUniform = \"vCameraColorCurveNeutral\",\r\n negativeUniform = \"vCameraColorCurveNegative\"\r\n ): void {\r\n if (colorCurves._dirty) {\r\n colorCurves._dirty = false;\r\n\r\n // Fill in global info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._globalHue,\r\n colorCurves._globalDensity,\r\n colorCurves._globalSaturation,\r\n colorCurves._globalExposure,\r\n colorCurves._globalCurve\r\n );\r\n\r\n // Compute highlights info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._highlightsHue,\r\n colorCurves._highlightsDensity,\r\n colorCurves._highlightsSaturation,\r\n colorCurves._highlightsExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._highlightsCurve);\r\n\r\n // Compute midtones info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._midtonesHue,\r\n colorCurves._midtonesDensity,\r\n colorCurves._midtonesSaturation,\r\n colorCurves._midtonesExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._midtonesCurve);\r\n\r\n // Compute shadows info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._shadowsHue,\r\n colorCurves._shadowsDensity,\r\n colorCurves._shadowsSaturation,\r\n colorCurves._shadowsExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._shadowsCurve);\r\n\r\n // Compute deltas (neutral is midtones).\r\n colorCurves._highlightsCurve.subtractToRef(colorCurves._midtonesCurve, colorCurves._positiveCurve);\r\n colorCurves._midtonesCurve.subtractToRef(colorCurves._shadowsCurve, colorCurves._negativeCurve);\r\n }\r\n\r\n if (effect) {\r\n effect.setFloat4(positiveUniform, colorCurves._positiveCurve.r, colorCurves._positiveCurve.g, colorCurves._positiveCurve.b, colorCurves._positiveCurve.a);\r\n effect.setFloat4(neutralUniform, colorCurves._midtonesCurve.r, colorCurves._midtonesCurve.g, colorCurves._midtonesCurve.b, colorCurves._midtonesCurve.a);\r\n effect.setFloat4(negativeUniform, colorCurves._negativeCurve.r, colorCurves._negativeCurve.g, colorCurves._negativeCurve.b, colorCurves._negativeCurve.a);\r\n }\r\n }\r\n\r\n /**\r\n * Prepare the list of uniforms associated with the ColorCurves effects.\r\n * @param uniformsList The list of uniforms used in the effect\r\n */\r\n public static PrepareUniforms(uniformsList: string[]): void {\r\n uniformsList.push(\"vCameraColorCurveNeutral\", \"vCameraColorCurvePositive\", \"vCameraColorCurveNegative\");\r\n }\r\n\r\n /**\r\n * Returns color grading data based on a hue, density, saturation and exposure value.\r\n * @param hue\r\n * @param density\r\n * @param saturation The saturation.\r\n * @param exposure The exposure.\r\n * @param result The result data container.\r\n */\r\n private _getColorGradingDataToRef(hue: number, density: number, saturation: number, exposure: number, result: Color4): void {\r\n if (hue == null) {\r\n return;\r\n }\r\n\r\n hue = ColorCurves._Clamp(hue, 0, 360);\r\n density = ColorCurves._Clamp(density, -100, 100);\r\n saturation = ColorCurves._Clamp(saturation, -100, 100);\r\n exposure = ColorCurves._Clamp(exposure, -100, 100);\r\n\r\n // Remap the slider/config filter density with non-linear mapping and also scale by half\r\n // so that the maximum filter density is only 50% control. This provides fine control\r\n // for small values and reasonable range.\r\n density = ColorCurves._ApplyColorGradingSliderNonlinear(density);\r\n density *= 0.5;\r\n\r\n exposure = ColorCurves._ApplyColorGradingSliderNonlinear(exposure);\r\n\r\n if (density < 0) {\r\n density *= -1;\r\n hue = (hue + 180) % 360;\r\n }\r\n\r\n ColorCurves._FromHSBToRef(hue, density, 50 + 0.25 * exposure, result);\r\n result.scaleToRef(2, result);\r\n result.a = 1 + 0.01 * saturation;\r\n }\r\n\r\n /**\r\n * Takes an input slider value and returns an adjusted value that provides extra control near the centre.\r\n * @param value The input slider value in range [-100,100].\r\n * @returns Adjusted value.\r\n */\r\n private static _ApplyColorGradingSliderNonlinear(value: number): number {\r\n value /= 100;\r\n\r\n let x: number = Math.abs(value);\r\n x = Math.pow(x, 2);\r\n\r\n if (value < 0) {\r\n x *= -1;\r\n }\r\n\r\n x *= 100;\r\n\r\n return x;\r\n }\r\n\r\n /**\r\n * Returns an RGBA Color4 based on Hue, Saturation and Brightness (also referred to as value, HSV).\r\n * @param hue The hue (H) input.\r\n * @param saturation The saturation (S) input.\r\n * @param brightness The brightness (B) input.\r\n * @param result\r\n * @result An RGBA color represented as Vector4.\r\n */\r\n private static _FromHSBToRef(hue: number, saturation: number, brightness: number, result: Color4): void {\r\n let h: number = ColorCurves._Clamp(hue, 0, 360);\r\n const s: number = ColorCurves._Clamp(saturation / 100, 0, 1);\r\n const v: number = ColorCurves._Clamp(brightness / 100, 0, 1);\r\n\r\n if (s === 0) {\r\n result.r = v;\r\n result.g = v;\r\n result.b = v;\r\n } else {\r\n // sector 0 to 5\r\n h /= 60;\r\n const i = Math.floor(h);\r\n\r\n // fractional part of h\r\n const f = h - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - s * f);\r\n const t = v * (1 - s * (1 - f));\r\n\r\n switch (i) {\r\n case 0:\r\n result.r = v;\r\n result.g = t;\r\n result.b = p;\r\n break;\r\n case 1:\r\n result.r = q;\r\n result.g = v;\r\n result.b = p;\r\n break;\r\n case 2:\r\n result.r = p;\r\n result.g = v;\r\n result.b = t;\r\n break;\r\n case 3:\r\n result.r = p;\r\n result.g = q;\r\n result.b = v;\r\n break;\r\n case 4:\r\n result.r = t;\r\n result.g = p;\r\n result.b = v;\r\n break;\r\n default:\r\n // case 5:\r\n result.r = v;\r\n result.g = p;\r\n result.b = q;\r\n break;\r\n }\r\n }\r\n\r\n result.a = 1;\r\n }\r\n\r\n /**\r\n * Returns a value clamped between min and max\r\n * @param value The value to clamp\r\n * @param min The minimum of value\r\n * @param max The maximum of value\r\n * @returns The clamped value.\r\n */\r\n private static _Clamp(value: number, min: number, max: number): number {\r\n return Math.min(Math.max(value, min), max);\r\n }\r\n\r\n /**\r\n * Clones the current color curve instance.\r\n * @return The cloned curves\r\n */\r\n public clone(): ColorCurves {\r\n return SerializationHelper.Clone(() => new ColorCurves(), this);\r\n }\r\n\r\n /**\r\n * Serializes the current color curve instance to a json representation.\r\n * @return a JSON representation\r\n */\r\n public serialize(): any {\r\n return SerializationHelper.Serialize(this);\r\n }\r\n\r\n /**\r\n * Parses the color curve from a json representation.\r\n * @param source the JSON source to parse\r\n * @return The parsed curves\r\n */\r\n public static Parse(source: any): ColorCurves {\r\n return SerializationHelper.Parse(() => new ColorCurves(), source, null, null);\r\n }\r\n}\r\n\r\n// References the dependencies.\r\nSerializationHelper._ColorCurvesParser = ColorCurves.Parse;\r\n"]}
1
+ {"version":3,"file":"colorCurves.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Materials/colorCurves.ts"],"names":[],"mappings":"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","sourcesContent":["import { SerializationHelper, serialize } from \"../Misc/decorators\";\r\nimport { Color4 } from \"../Maths/math.color\";\r\nimport type { Effect } from \"../Materials/effect\";\r\n\r\n/**\r\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\r\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\r\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\r\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\r\n */\r\nexport class ColorCurves {\r\n private _dirty = true;\r\n\r\n private _tempColor = new Color4(0, 0, 0, 0);\r\n\r\n private _globalCurve = new Color4(0, 0, 0, 0);\r\n private _highlightsCurve = new Color4(0, 0, 0, 0);\r\n private _midtonesCurve = new Color4(0, 0, 0, 0);\r\n private _shadowsCurve = new Color4(0, 0, 0, 0);\r\n\r\n private _positiveCurve = new Color4(0, 0, 0, 0);\r\n private _negativeCurve = new Color4(0, 0, 0, 0);\r\n\r\n @serialize()\r\n private _globalHue = 30;\r\n\r\n @serialize()\r\n private _globalDensity = 0;\r\n\r\n @serialize()\r\n private _globalSaturation = 0;\r\n\r\n @serialize()\r\n private _globalExposure = 0;\r\n\r\n /**\r\n * Gets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get globalHue(): number {\r\n return this._globalHue;\r\n }\r\n /**\r\n * Sets the global Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set globalHue(value: number) {\r\n this._globalHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get globalDensity(): number {\r\n return this._globalDensity;\r\n }\r\n /**\r\n * Sets the global Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set globalDensity(value: number) {\r\n this._globalDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get globalSaturation(): number {\r\n return this._globalSaturation;\r\n }\r\n /**\r\n * Sets the global Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set globalSaturation(value: number) {\r\n this._globalSaturation = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Gets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get globalExposure(): number {\r\n return this._globalExposure;\r\n }\r\n /**\r\n * Sets the global Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set globalExposure(value: number) {\r\n this._globalExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _highlightsHue = 30;\r\n\r\n @serialize()\r\n private _highlightsDensity = 0;\r\n\r\n @serialize()\r\n private _highlightsSaturation = 0;\r\n\r\n @serialize()\r\n private _highlightsExposure = 0;\r\n\r\n /**\r\n * Gets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get highlightsHue(): number {\r\n return this._highlightsHue;\r\n }\r\n /**\r\n * Sets the highlights Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set highlightsHue(value: number) {\r\n this._highlightsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get highlightsDensity(): number {\r\n return this._highlightsDensity;\r\n }\r\n /**\r\n * Sets the highlights Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set highlightsDensity(value: number) {\r\n this._highlightsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get highlightsSaturation(): number {\r\n return this._highlightsSaturation;\r\n }\r\n /**\r\n * Sets the highlights Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set highlightsSaturation(value: number) {\r\n this._highlightsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get highlightsExposure(): number {\r\n return this._highlightsExposure;\r\n }\r\n /**\r\n * Sets the highlights Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set highlightsExposure(value: number) {\r\n this._highlightsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n @serialize()\r\n private _midtonesHue = 30;\r\n\r\n @serialize()\r\n private _midtonesDensity = 0;\r\n\r\n @serialize()\r\n private _midtonesSaturation = 0;\r\n\r\n @serialize()\r\n private _midtonesExposure = 0;\r\n\r\n /**\r\n * Gets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get midtonesHue(): number {\r\n return this._midtonesHue;\r\n }\r\n /**\r\n * Sets the midtones Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set midtonesHue(value: number) {\r\n this._midtonesHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get midtonesDensity(): number {\r\n return this._midtonesDensity;\r\n }\r\n /**\r\n * Sets the midtones Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set midtonesDensity(value: number) {\r\n this._midtonesDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get midtonesSaturation(): number {\r\n return this._midtonesSaturation;\r\n }\r\n /**\r\n * Sets the midtones Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set midtonesSaturation(value: number) {\r\n this._midtonesSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get midtonesExposure(): number {\r\n return this._midtonesExposure;\r\n }\r\n /**\r\n * Sets the midtones Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set midtonesExposure(value: number) {\r\n this._midtonesExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n private _shadowsHue = 30;\r\n private _shadowsDensity = 0;\r\n private _shadowsSaturation = 0;\r\n private _shadowsExposure = 0;\r\n\r\n /**\r\n * Gets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public get shadowsHue(): number {\r\n return this._shadowsHue;\r\n }\r\n /**\r\n * Sets the shadows Hue value.\r\n * The hue value is a standard HSB hue in the range [0,360] where 0=red, 120=green and 240=blue. The default value is 30 degrees (orange).\r\n */\r\n public set shadowsHue(value: number) {\r\n this._shadowsHue = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public get shadowsDensity(): number {\r\n return this._shadowsDensity;\r\n }\r\n /**\r\n * Sets the shadows Density value.\r\n * The density value is in range [-100,+100] where 0 means the color filter has no effect and +100 means the color filter has maximum effect.\r\n * Values less than zero provide a filter of opposite hue.\r\n */\r\n public set shadowsDensity(value: number) {\r\n this._shadowsDensity = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public get shadowsSaturation(): number {\r\n return this._shadowsSaturation;\r\n }\r\n /**\r\n * Sets the shadows Saturation value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase saturation and negative values decrease saturation.\r\n */\r\n public set shadowsSaturation(value: number) {\r\n this._shadowsSaturation = value;\r\n this._dirty = true;\r\n }\r\n /**\r\n * Gets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public get shadowsExposure(): number {\r\n return this._shadowsExposure;\r\n }\r\n /**\r\n * Sets the shadows Exposure value.\r\n * This is an adjustment value in the range [-100,+100], where the default value of 0.0 makes no adjustment, positive values increase exposure and negative values decrease exposure.\r\n */\r\n public set shadowsExposure(value: number) {\r\n this._shadowsExposure = value;\r\n this._dirty = true;\r\n }\r\n\r\n /**\r\n * Returns the class name\r\n * @returns The class name\r\n */\r\n public getClassName(): string {\r\n return \"ColorCurves\";\r\n }\r\n\r\n /**\r\n * Binds the color curves to the shader.\r\n * @param colorCurves The color curve to bind\r\n * @param effect The effect to bind to\r\n * @param positiveUniform The positive uniform shader parameter\r\n * @param neutralUniform The neutral uniform shader parameter\r\n * @param negativeUniform The negative uniform shader parameter\r\n */\r\n public static Bind(\r\n colorCurves: ColorCurves,\r\n effect: Effect,\r\n positiveUniform = \"vCameraColorCurvePositive\",\r\n neutralUniform = \"vCameraColorCurveNeutral\",\r\n negativeUniform = \"vCameraColorCurveNegative\"\r\n ): void {\r\n if (colorCurves._dirty) {\r\n colorCurves._dirty = false;\r\n\r\n // Fill in global info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._globalHue,\r\n colorCurves._globalDensity,\r\n colorCurves._globalSaturation,\r\n colorCurves._globalExposure,\r\n colorCurves._globalCurve\r\n );\r\n\r\n // Compute highlights info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._highlightsHue,\r\n colorCurves._highlightsDensity,\r\n colorCurves._highlightsSaturation,\r\n colorCurves._highlightsExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._highlightsCurve);\r\n\r\n // Compute midtones info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._midtonesHue,\r\n colorCurves._midtonesDensity,\r\n colorCurves._midtonesSaturation,\r\n colorCurves._midtonesExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._midtonesCurve);\r\n\r\n // Compute shadows info.\r\n colorCurves._getColorGradingDataToRef(\r\n colorCurves._shadowsHue,\r\n colorCurves._shadowsDensity,\r\n colorCurves._shadowsSaturation,\r\n colorCurves._shadowsExposure,\r\n colorCurves._tempColor\r\n );\r\n colorCurves._tempColor.multiplyToRef(colorCurves._globalCurve, colorCurves._shadowsCurve);\r\n\r\n // Compute deltas (neutral is midtones).\r\n colorCurves._highlightsCurve.subtractToRef(colorCurves._midtonesCurve, colorCurves._positiveCurve);\r\n colorCurves._midtonesCurve.subtractToRef(colorCurves._shadowsCurve, colorCurves._negativeCurve);\r\n }\r\n\r\n if (effect) {\r\n effect.setFloat4(positiveUniform, colorCurves._positiveCurve.r, colorCurves._positiveCurve.g, colorCurves._positiveCurve.b, colorCurves._positiveCurve.a);\r\n effect.setFloat4(neutralUniform, colorCurves._midtonesCurve.r, colorCurves._midtonesCurve.g, colorCurves._midtonesCurve.b, colorCurves._midtonesCurve.a);\r\n effect.setFloat4(negativeUniform, colorCurves._negativeCurve.r, colorCurves._negativeCurve.g, colorCurves._negativeCurve.b, colorCurves._negativeCurve.a);\r\n }\r\n }\r\n\r\n /**\r\n * Prepare the list of uniforms associated with the ColorCurves effects.\r\n * @param uniformsList The list of uniforms used in the effect\r\n */\r\n public static PrepareUniforms(uniformsList: string[]): void {\r\n uniformsList.push(\"vCameraColorCurveNeutral\", \"vCameraColorCurvePositive\", \"vCameraColorCurveNegative\");\r\n }\r\n\r\n /**\r\n * Returns color grading data based on a hue, density, saturation and exposure value.\r\n * @param hue\r\n * @param density\r\n * @param saturation The saturation.\r\n * @param exposure The exposure.\r\n * @param result The result data container.\r\n */\r\n private _getColorGradingDataToRef(hue: number, density: number, saturation: number, exposure: number, result: Color4): void {\r\n if (hue == null) {\r\n return;\r\n }\r\n\r\n hue = ColorCurves._Clamp(hue, 0, 360);\r\n density = ColorCurves._Clamp(density, -100, 100);\r\n saturation = ColorCurves._Clamp(saturation, -100, 100);\r\n exposure = ColorCurves._Clamp(exposure, -100, 100);\r\n\r\n // Remap the slider/config filter density with non-linear mapping and also scale by half\r\n // so that the maximum filter density is only 50% control. This provides fine control\r\n // for small values and reasonable range.\r\n density = ColorCurves._ApplyColorGradingSliderNonlinear(density);\r\n density *= 0.5;\r\n\r\n exposure = ColorCurves._ApplyColorGradingSliderNonlinear(exposure);\r\n\r\n if (density < 0) {\r\n density *= -1;\r\n hue = (hue + 180) % 360;\r\n }\r\n\r\n ColorCurves._FromHSBToRef(hue, density, 50 + 0.25 * exposure, result);\r\n result.scaleToRef(2, result);\r\n result.a = 1 + 0.01 * saturation;\r\n }\r\n\r\n /**\r\n * Takes an input slider value and returns an adjusted value that provides extra control near the centre.\r\n * @param value The input slider value in range [-100,100].\r\n * @returns Adjusted value.\r\n */\r\n private static _ApplyColorGradingSliderNonlinear(value: number): number {\r\n value /= 100;\r\n\r\n let x: number = Math.abs(value);\r\n x = Math.pow(x, 2);\r\n\r\n if (value < 0) {\r\n x *= -1;\r\n }\r\n\r\n x *= 100;\r\n\r\n return x;\r\n }\r\n\r\n /**\r\n * Returns an RGBA Color4 based on Hue, Saturation and Brightness (also referred to as value, HSV).\r\n * @param hue The hue (H) input.\r\n * @param saturation The saturation (S) input.\r\n * @param brightness The brightness (B) input.\r\n * @param result\r\n * @result An RGBA color represented as Vector4.\r\n */\r\n private static _FromHSBToRef(hue: number, saturation: number, brightness: number, result: Color4): void {\r\n let h: number = ColorCurves._Clamp(hue, 0, 360);\r\n const s: number = ColorCurves._Clamp(saturation / 100, 0, 1);\r\n const v: number = ColorCurves._Clamp(brightness / 100, 0, 1);\r\n\r\n if (s === 0) {\r\n result.r = v;\r\n result.g = v;\r\n result.b = v;\r\n } else {\r\n // sector 0 to 5\r\n h /= 60;\r\n const i = Math.floor(h);\r\n\r\n // fractional part of h\r\n const f = h - i;\r\n const p = v * (1 - s);\r\n const q = v * (1 - s * f);\r\n const t = v * (1 - s * (1 - f));\r\n\r\n switch (i) {\r\n case 0:\r\n result.r = v;\r\n result.g = t;\r\n result.b = p;\r\n break;\r\n case 1:\r\n result.r = q;\r\n result.g = v;\r\n result.b = p;\r\n break;\r\n case 2:\r\n result.r = p;\r\n result.g = v;\r\n result.b = t;\r\n break;\r\n case 3:\r\n result.r = p;\r\n result.g = q;\r\n result.b = v;\r\n break;\r\n case 4:\r\n result.r = t;\r\n result.g = p;\r\n result.b = v;\r\n break;\r\n default:\r\n // case 5:\r\n result.r = v;\r\n result.g = p;\r\n result.b = q;\r\n break;\r\n }\r\n }\r\n\r\n result.a = 1;\r\n }\r\n\r\n /**\r\n * Returns a value clamped between min and max\r\n * @param value The value to clamp\r\n * @param min The minimum of value\r\n * @param max The maximum of value\r\n * @returns The clamped value.\r\n */\r\n private static _Clamp(value: number, min: number, max: number): number {\r\n return Math.min(Math.max(value, min), max);\r\n }\r\n\r\n /**\r\n * Clones the current color curve instance.\r\n * @returns The cloned curves\r\n */\r\n public clone(): ColorCurves {\r\n return SerializationHelper.Clone(() => new ColorCurves(), this);\r\n }\r\n\r\n /**\r\n * Serializes the current color curve instance to a json representation.\r\n * @returns a JSON representation\r\n */\r\n public serialize(): any {\r\n return SerializationHelper.Serialize(this);\r\n }\r\n\r\n /**\r\n * Parses the color curve from a json representation.\r\n * @param source the JSON source to parse\r\n * @returns The parsed curves\r\n */\r\n public static Parse(source: any): ColorCurves {\r\n return SerializationHelper.Parse(() => new ColorCurves(), source, null, null);\r\n }\r\n}\r\n\r\n// References the dependencies.\r\nSerializationHelper._ColorCurvesParser = ColorCurves.Parse;\r\n"]}
@@ -391,7 +391,7 @@ export declare class Effect implements IDisposable {
391
391
  * @param value Value to be set.
392
392
  * @returns this effect.
393
393
  */
394
- setInt(uniformName: string, value: number): Effect;
394
+ setInt: (uniformName: string, value: number) => Effect;
395
395
  /**
396
396
  * Sets an int2 value on a uniform variable.
397
397
  * @param uniformName Name of the variable.
@@ -399,7 +399,7 @@ export declare class Effect implements IDisposable {
399
399
  * @param y Second int in int2.
400
400
  * @returns this effect.
401
401
  */
402
- setInt2(uniformName: string, x: number, y: number): Effect;
402
+ setInt2: (uniformName: string, x: number, y: number) => Effect;
403
403
  /**
404
404
  * Sets an int3 value on a uniform variable.
405
405
  * @param uniformName Name of the variable.
@@ -408,7 +408,7 @@ export declare class Effect implements IDisposable {
408
408
  * @param z Third int in int3.
409
409
  * @returns this effect.
410
410
  */
411
- setInt3(uniformName: string, x: number, y: number, z: number): Effect;
411
+ setInt3: (uniformName: string, x: number, y: number, z: number) => Effect;
412
412
  /**
413
413
  * Sets an int4 value on a uniform variable.
414
414
  * @param uniformName Name of the variable.
@@ -418,35 +418,35 @@ export declare class Effect implements IDisposable {
418
418
  * @param w Fourth int in int4.
419
419
  * @returns this effect.
420
420
  */
421
- setInt4(uniformName: string, x: number, y: number, z: number, w: number): Effect;
421
+ setInt4: (uniformName: string, x: number, y: number, z: number, w: number) => Effect;
422
422
  /**
423
423
  * Sets an int array on a uniform variable.
424
424
  * @param uniformName Name of the variable.
425
425
  * @param array array to be set.
426
426
  * @returns this effect.
427
427
  */
428
- setIntArray(uniformName: string, array: Int32Array): Effect;
428
+ setIntArray: (uniformName: string, array: Int32Array) => Effect;
429
429
  /**
430
430
  * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)
431
431
  * @param uniformName Name of the variable.
432
432
  * @param array array to be set.
433
433
  * @returns this effect.
434
434
  */
435
- setIntArray2(uniformName: string, array: Int32Array): Effect;
435
+ setIntArray2: (uniformName: string, array: Int32Array) => Effect;
436
436
  /**
437
437
  * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)
438
438
  * @param uniformName Name of the variable.
439
439
  * @param array array to be set.
440
440
  * @returns this effect.
441
441
  */
442
- setIntArray3(uniformName: string, array: Int32Array): Effect;
442
+ setIntArray3: (uniformName: string, array: Int32Array) => Effect;
443
443
  /**
444
444
  * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)
445
445
  * @param uniformName Name of the variable.
446
446
  * @param array array to be set.
447
447
  * @returns this effect.
448
448
  */
449
- setIntArray4(uniformName: string, array: Int32Array): Effect;
449
+ setIntArray4: (uniformName: string, array: Int32Array) => Effect;
450
450
  /**
451
451
  * Sets an float array on a uniform variable.
452
452
  * @param uniformName Name of the variable.
@@ -481,63 +481,63 @@ export declare class Effect implements IDisposable {
481
481
  * @param array array to be set.
482
482
  * @returns this effect.
483
483
  */
484
- setArray(uniformName: string, array: number[]): Effect;
484
+ setArray: (uniformName: string, array: number[]) => Effect;
485
485
  /**
486
486
  * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)
487
487
  * @param uniformName Name of the variable.
488
488
  * @param array array to be set.
489
489
  * @returns this effect.
490
490
  */
491
- setArray2(uniformName: string, array: number[]): Effect;
491
+ setArray2: (uniformName: string, array: number[]) => Effect;
492
492
  /**
493
493
  * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)
494
494
  * @param uniformName Name of the variable.
495
495
  * @param array array to be set.
496
496
  * @returns this effect.
497
497
  */
498
- setArray3(uniformName: string, array: number[]): Effect;
498
+ setArray3: (uniformName: string, array: number[]) => Effect;
499
499
  /**
500
500
  * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)
501
501
  * @param uniformName Name of the variable.
502
502
  * @param array array to be set.
503
503
  * @returns this effect.
504
504
  */
505
- setArray4(uniformName: string, array: number[]): Effect;
505
+ setArray4: (uniformName: string, array: number[]) => Effect;
506
506
  /**
507
507
  * Sets matrices on a uniform variable.
508
508
  * @param uniformName Name of the variable.
509
509
  * @param matrices matrices to be set.
510
510
  * @returns this effect.
511
511
  */
512
- setMatrices(uniformName: string, matrices: Float32Array | Array<number>): Effect;
512
+ setMatrices: (uniformName: string, matrices: Float32Array | Array<number>) => Effect;
513
513
  /**
514
514
  * Sets matrix on a uniform variable.
515
515
  * @param uniformName Name of the variable.
516
516
  * @param matrix matrix to be set.
517
517
  * @returns this effect.
518
518
  */
519
- setMatrix(uniformName: string, matrix: IMatrixLike): Effect;
519
+ setMatrix: (uniformName: string, matrix: IMatrixLike) => Effect;
520
520
  /**
521
521
  * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)
522
522
  * @param uniformName Name of the variable.
523
523
  * @param matrix matrix to be set.
524
524
  * @returns this effect.
525
525
  */
526
- setMatrix3x3(uniformName: string, matrix: Float32Array | Array<number>): Effect;
526
+ setMatrix3x3: (uniformName: string, matrix: Float32Array | Array<number>) => Effect;
527
527
  /**
528
528
  * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)
529
529
  * @param uniformName Name of the variable.
530
530
  * @param matrix matrix to be set.
531
531
  * @returns this effect.
532
532
  */
533
- setMatrix2x2(uniformName: string, matrix: Float32Array | Array<number>): Effect;
533
+ setMatrix2x2: (uniformName: string, matrix: Float32Array | Array<number>) => Effect;
534
534
  /**
535
535
  * Sets a float on a uniform variable.
536
536
  * @param uniformName Name of the variable.
537
537
  * @param value value to be set.
538
538
  * @returns this effect.
539
539
  */
540
- setFloat(uniformName: string, value: number): Effect;
540
+ setFloat: (uniformName: string, value: number) => Effect;
541
541
  /**
542
542
  * Sets a boolean on a uniform variable.
543
543
  * @param uniformName Name of the variable.
@@ -551,7 +551,7 @@ export declare class Effect implements IDisposable {
551
551
  * @param vector2 vector2 to be set.
552
552
  * @returns this effect.
553
553
  */
554
- setVector2(uniformName: string, vector2: IVector2Like): Effect;
554
+ setVector2: (uniformName: string, vector2: IVector2Like) => Effect;
555
555
  /**
556
556
  * Sets a float2 on a uniform variable.
557
557
  * @param uniformName Name of the variable.
@@ -559,14 +559,14 @@ export declare class Effect implements IDisposable {
559
559
  * @param y Second float in float2.
560
560
  * @returns this effect.
561
561
  */
562
- setFloat2(uniformName: string, x: number, y: number): Effect;
562
+ setFloat2: (uniformName: string, x: number, y: number) => Effect;
563
563
  /**
564
564
  * Sets a Vector3 on a uniform variable.
565
565
  * @param uniformName Name of the variable.
566
566
  * @param vector3 Value to be set.
567
567
  * @returns this effect.
568
568
  */
569
- setVector3(uniformName: string, vector3: IVector3Like): Effect;
569
+ setVector3: (uniformName: string, vector3: IVector3Like) => Effect;
570
570
  /**
571
571
  * Sets a float3 on a uniform variable.
572
572
  * @param uniformName Name of the variable.
@@ -575,21 +575,21 @@ export declare class Effect implements IDisposable {
575
575
  * @param z Third float in float3.
576
576
  * @returns this effect.
577
577
  */
578
- setFloat3(uniformName: string, x: number, y: number, z: number): Effect;
578
+ setFloat3: (uniformName: string, x: number, y: number, z: number) => Effect;
579
579
  /**
580
580
  * Sets a Vector4 on a uniform variable.
581
581
  * @param uniformName Name of the variable.
582
582
  * @param vector4 Value to be set.
583
583
  * @returns this effect.
584
584
  */
585
- setVector4(uniformName: string, vector4: IVector4Like): Effect;
585
+ setVector4: (uniformName: string, vector4: IVector4Like) => Effect;
586
586
  /**
587
587
  * Sets a Quaternion on a uniform variable.
588
588
  * @param uniformName Name of the variable.
589
589
  * @param quaternion Value to be set.
590
590
  * @returns this effect.
591
591
  */
592
- setQuaternion(uniformName: string, quaternion: IQuaternionLike): Effect;
592
+ setQuaternion: (uniformName: string, quaternion: IQuaternionLike) => Effect;
593
593
  /**
594
594
  * Sets a float4 on a uniform variable.
595
595
  * @param uniformName Name of the variable.
@@ -599,14 +599,14 @@ export declare class Effect implements IDisposable {
599
599
  * @param w Fourth float in float4.
600
600
  * @returns this effect.
601
601
  */
602
- setFloat4(uniformName: string, x: number, y: number, z: number, w: number): Effect;
602
+ setFloat4: (uniformName: string, x: number, y: number, z: number, w: number) => Effect;
603
603
  /**
604
604
  * Sets a Color3 on a uniform variable.
605
605
  * @param uniformName Name of the variable.
606
606
  * @param color3 Value to be set.
607
607
  * @returns this effect.
608
608
  */
609
- setColor3(uniformName: string, color3: IColor3Like): Effect;
609
+ setColor3: (uniformName: string, color3: IColor3Like) => Effect;
610
610
  /**
611
611
  * Sets a Color4 on a uniform variable.
612
612
  * @param uniformName Name of the variable.
@@ -614,14 +614,14 @@ export declare class Effect implements IDisposable {
614
614
  * @param alpha Alpha value to be set.
615
615
  * @returns this effect.
616
616
  */
617
- setColor4(uniformName: string, color3: IColor3Like, alpha: number): Effect;
617
+ setColor4: (uniformName: string, color3: IColor3Like, alpha: number) => Effect;
618
618
  /**
619
619
  * Sets a Color4 on a uniform variable
620
620
  * @param uniformName defines the name of the variable
621
621
  * @param color4 defines the value to be set
622
622
  * @returns this effect.
623
623
  */
624
- setDirectColor4(uniformName: string, color4: IColor4Like): Effect;
624
+ setDirectColor4: (uniformName: string, color4: IColor4Like) => Effect;
625
625
  /**
626
626
  * Release all associated resources.
627
627
  **/