@babylonjs/core 5.0.0-beta.3 → 5.0.0-beta.7

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 (675) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +5 -1
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Audio/analyser.d.ts +2 -1
  5. package/Audio/analyser.js +5 -0
  6. package/Audio/analyser.js.map +1 -1
  7. package/Audio/audioSceneComponent.d.ts +1 -1
  8. package/Audio/audioSceneComponent.js +5 -0
  9. package/Audio/audioSceneComponent.js.map +1 -1
  10. package/Audio/sound.d.ts +1 -1
  11. package/Audio/sound.js +8 -1
  12. package/Audio/sound.js.map +1 -1
  13. package/Audio/soundTrack.d.ts +2 -1
  14. package/Audio/soundTrack.js +5 -0
  15. package/Audio/soundTrack.js.map +1 -1
  16. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  17. package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
  18. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  19. package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
  20. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  21. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  22. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  23. package/Bones/bone.d.ts +2 -1
  24. package/Bones/bone.js +28 -18
  25. package/Bones/bone.js.map +1 -1
  26. package/Bones/skeleton.js +3 -3
  27. package/Bones/skeleton.js.map +1 -1
  28. package/Buffers/buffer.d.ts +4 -0
  29. package/Buffers/buffer.js +13 -3
  30. package/Buffers/buffer.js.map +1 -1
  31. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
  32. package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
  33. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  34. package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
  35. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  36. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  37. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  38. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  39. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  40. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  41. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  42. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  43. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  44. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  45. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  46. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  47. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  48. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  49. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  50. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  51. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  52. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  53. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  54. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  55. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  56. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  57. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  58. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  59. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  60. package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
  61. package/Cameras/VR/vrExperienceHelper.js +1 -0
  62. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  63. package/Cameras/VR/webVRCamera.d.ts +2 -1
  64. package/Cameras/VR/webVRCamera.js +3 -2
  65. package/Cameras/VR/webVRCamera.js.map +1 -1
  66. package/Cameras/arcRotateCamera.d.ts +1 -1
  67. package/Cameras/arcRotateCamera.js.map +1 -1
  68. package/Cameras/camera.d.ts +1 -1
  69. package/Cameras/camera.js +1 -1
  70. package/Cameras/camera.js.map +1 -1
  71. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  72. package/Cameras/deviceOrientationCamera.js.map +1 -1
  73. package/Cameras/flyCamera.d.ts +1 -1
  74. package/Cameras/flyCamera.js.map +1 -1
  75. package/Cameras/followCamera.d.ts +1 -1
  76. package/Cameras/followCamera.js.map +1 -1
  77. package/Cameras/freeCamera.d.ts +1 -1
  78. package/Cameras/freeCamera.js.map +1 -1
  79. package/Cameras/gamepadCamera.d.ts +1 -1
  80. package/Cameras/gamepadCamera.js.map +1 -1
  81. package/Cameras/targetCamera.d.ts +1 -1
  82. package/Cameras/targetCamera.js.map +1 -1
  83. package/Cameras/touchCamera.d.ts +1 -1
  84. package/Cameras/touchCamera.js.map +1 -1
  85. package/Cameras/universalCamera.d.ts +1 -1
  86. package/Cameras/universalCamera.js.map +1 -1
  87. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  88. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  89. package/Collisions/collider.d.ts +1 -1
  90. package/Collisions/collider.js +48 -2
  91. package/Collisions/collider.js.map +1 -1
  92. package/Compute/computeEffect.js +2 -2
  93. package/Compute/computeEffect.js.map +1 -1
  94. package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
  95. package/Culling/Octrees/octreeSceneComponent.js +5 -0
  96. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  97. package/Culling/ray.d.ts +6 -4
  98. package/Culling/ray.js +31 -10
  99. package/Culling/ray.js.map +1 -1
  100. package/Debug/axesViewer.d.ts +1 -1
  101. package/Debug/axesViewer.js +5 -0
  102. package/Debug/axesViewer.js.map +1 -1
  103. package/Debug/debugLayer.d.ts +1 -1
  104. package/Debug/debugLayer.js +6 -2
  105. package/Debug/debugLayer.js.map +1 -1
  106. package/Debug/physicsViewer.d.ts +1 -1
  107. package/Debug/physicsViewer.js +3 -0
  108. package/Debug/physicsViewer.js.map +1 -1
  109. package/DeviceInput/Helpers/eventFactory.d.ts +1 -1
  110. package/DeviceInput/Helpers/eventFactory.js +2 -5
  111. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  112. package/DeviceInput/InputDevices/deviceEnums.d.ts +55 -2
  113. package/DeviceInput/InputDevices/deviceEnums.js +54 -0
  114. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  115. package/DeviceInput/InputDevices/deviceSource.d.ts +35 -0
  116. package/DeviceInput/InputDevices/deviceSource.js +38 -0
  117. package/DeviceInput/InputDevices/deviceSource.js.map +1 -0
  118. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +14 -72
  119. package/DeviceInput/InputDevices/deviceSourceManager.js +10 -180
  120. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  121. package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
  122. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  123. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.d.ts +1 -5
  124. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.js +0 -0
  125. package/DeviceInput/InputDevices/inputInterfaces.js.map +1 -0
  126. package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +46 -0
  127. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +144 -0
  128. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -0
  129. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.d.ts +3 -7
  130. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.js +11 -16
  131. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -0
  132. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.d.ts +11 -15
  133. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.js +121 -146
  134. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -0
  135. package/DeviceInput/index.d.ts +1 -5
  136. package/DeviceInput/index.js +1 -5
  137. package/DeviceInput/index.js.map +1 -1
  138. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  139. package/Engines/Extensions/engine.cubeTexture.js +6 -2
  140. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  141. package/Engines/Extensions/engine.multiview.d.ts +5 -0
  142. package/Engines/Extensions/engine.multiview.js +4 -1
  143. package/Engines/Extensions/engine.multiview.js.map +1 -1
  144. package/Engines/Native/nativeInterfaces.d.ts +3 -2
  145. package/Engines/Native/nativeInterfaces.js.map +1 -1
  146. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  147. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  148. package/Engines/Processors/shaderCodeInliner.js +13 -13
  149. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  150. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
  151. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  152. package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
  153. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  154. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
  155. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  156. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  157. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  158. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
  159. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  160. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
  161. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  162. package/Engines/WebGPU/webgpuTextureHelper.js +13 -6
  163. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  164. package/Engines/engine.d.ts +2 -6
  165. package/Engines/engine.js +1 -5
  166. package/Engines/engine.js.map +1 -1
  167. package/Engines/engineCapabilities.d.ts +4 -0
  168. package/Engines/engineCapabilities.js.map +1 -1
  169. package/Engines/nativeEngine.d.ts +1 -0
  170. package/Engines/nativeEngine.js +39 -12
  171. package/Engines/nativeEngine.js.map +1 -1
  172. package/Engines/nullEngine.js +3 -1
  173. package/Engines/nullEngine.js.map +1 -1
  174. package/Engines/renderTargetWrapper.d.ts +8 -0
  175. package/Engines/renderTargetWrapper.js +20 -0
  176. package/Engines/renderTargetWrapper.js.map +1 -1
  177. package/Engines/thinEngine.d.ts +17 -1
  178. package/Engines/thinEngine.js +50 -20
  179. package/Engines/thinEngine.js.map +1 -1
  180. package/Engines/webgpuEngine.d.ts +0 -4
  181. package/Engines/webgpuEngine.js +7 -14
  182. package/Engines/webgpuEngine.js.map +1 -1
  183. package/Gamepads/Controllers/daydreamController.js +1 -1
  184. package/Gamepads/Controllers/daydreamController.js.map +1 -1
  185. package/Gamepads/Controllers/oculusTouchController.js +2 -2
  186. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  187. package/Gamepads/Controllers/webVRController.d.ts +1 -0
  188. package/Gamepads/Controllers/webVRController.js +1 -0
  189. package/Gamepads/Controllers/webVRController.js.map +1 -1
  190. package/Gamepads/gamepadManager.js +1 -1
  191. package/Gamepads/gamepadManager.js.map +1 -1
  192. package/Gizmos/gizmoManager.d.ts +2 -0
  193. package/Gizmos/gizmoManager.js +28 -24
  194. package/Gizmos/gizmoManager.js.map +1 -1
  195. package/Helpers/sceneHelpers.d.ts +1 -0
  196. package/Helpers/sceneHelpers.js.map +1 -1
  197. package/Inputs/scene.inputManager.d.ts +2 -2
  198. package/Inputs/scene.inputManager.js +11 -13
  199. package/Inputs/scene.inputManager.js.map +1 -1
  200. package/Instrumentation/sceneInstrumentation.js +2 -2
  201. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  202. package/Layers/effectLayer.d.ts +1 -1
  203. package/Layers/effectLayer.js +1 -1
  204. package/Layers/effectLayer.js.map +1 -1
  205. package/Layers/effectLayerSceneComponent.d.ts +1 -1
  206. package/Layers/effectLayerSceneComponent.js +7 -3
  207. package/Layers/effectLayerSceneComponent.js.map +1 -1
  208. package/Layers/glowLayer.d.ts +1 -1
  209. package/Layers/glowLayer.js.map +1 -1
  210. package/Layers/highlightLayer.d.ts +1 -1
  211. package/Layers/highlightLayer.js +2 -1
  212. package/Layers/highlightLayer.js.map +1 -1
  213. package/Layers/layer.d.ts +2 -2
  214. package/Layers/layer.js.map +1 -1
  215. package/Layers/layerSceneComponent.d.ts +1 -1
  216. package/Layers/layerSceneComponent.js +7 -3
  217. package/Layers/layerSceneComponent.js.map +1 -1
  218. package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
  219. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  220. package/Lights/Shadows/shadowGenerator.js +2 -2
  221. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  222. package/Loading/Plugins/babylonFileLoader.js +115 -29
  223. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  224. package/Loading/loadingScreen.js +8 -8
  225. package/Loading/loadingScreen.js.map +1 -1
  226. package/Loading/sceneLoader.js +3 -3
  227. package/Loading/sceneLoader.js.map +1 -1
  228. package/Materials/Background/backgroundMaterial.d.ts +1 -1
  229. package/Materials/Background/backgroundMaterial.js.map +1 -1
  230. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
  231. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
  232. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
  233. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
  234. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  235. package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
  236. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  237. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
  238. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  239. package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
  240. package/Materials/Node/Blocks/Dual/index.js +1 -0
  241. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  242. package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
  243. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
  245. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  247. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
  249. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  250. package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
  251. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  252. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  253. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  254. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  255. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  256. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  257. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  258. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
  259. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  260. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
  261. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
  263. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  265. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  266. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
  267. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  268. package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
  269. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  270. package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
  271. package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
  272. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  273. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
  274. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
  276. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  277. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
  278. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  279. package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
  280. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  281. package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
  282. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  283. package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
  284. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  285. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  286. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  287. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
  288. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  289. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
  290. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  291. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  292. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  293. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  294. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  295. package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
  296. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  297. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
  298. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  299. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
  300. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  301. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
  302. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  303. package/Materials/Node/Blocks/addBlock.js +1 -1
  304. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  305. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  306. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  307. package/Materials/Node/Blocks/clampBlock.js +3 -3
  308. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  309. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  310. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  311. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  312. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  313. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  314. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  315. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  316. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  317. package/Materials/Node/Blocks/crossBlock.js +1 -1
  318. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  319. package/Materials/Node/Blocks/customBlock.js +1 -1
  320. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  321. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  322. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  323. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  324. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  325. package/Materials/Node/Blocks/divideBlock.js +1 -1
  326. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  327. package/Materials/Node/Blocks/dotBlock.js +1 -1
  328. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  329. package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
  330. package/Materials/Node/Blocks/elbowBlock.js +60 -0
  331. package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
  332. package/Materials/Node/Blocks/fresnelBlock.js +2 -2
  333. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  334. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  335. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  336. package/Materials/Node/Blocks/index.d.ts +1 -0
  337. package/Materials/Node/Blocks/index.js +1 -0
  338. package/Materials/Node/Blocks/index.js.map +1 -1
  339. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  340. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  341. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  342. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  343. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  344. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  345. package/Materials/Node/Blocks/maxBlock.js +1 -1
  346. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  347. package/Materials/Node/Blocks/minBlock.js +1 -1
  348. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  349. package/Materials/Node/Blocks/modBlock.js +1 -1
  350. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  351. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  352. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  353. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  354. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  355. package/Materials/Node/Blocks/negateBlock.js +1 -1
  356. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  357. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  358. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  359. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  360. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  361. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  362. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  363. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  364. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  365. package/Materials/Node/Blocks/powBlock.js +1 -1
  366. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  367. package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
  368. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  369. package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
  370. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  371. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  372. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  373. package/Materials/Node/Blocks/refractBlock.js +1 -1
  374. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  375. package/Materials/Node/Blocks/remapBlock.js +3 -3
  376. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  377. package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
  378. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  379. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  380. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  381. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  382. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  383. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  384. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  385. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  386. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  387. package/Materials/Node/Blocks/stepBlock.js +1 -1
  388. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  389. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  390. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  391. package/Materials/Node/Blocks/transformBlock.js +13 -13
  392. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  393. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  394. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  395. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  396. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  397. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  398. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  399. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  400. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  401. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  402. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  403. package/Materials/Node/Blocks/waveBlock.js +3 -3
  404. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  405. package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
  406. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  407. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  408. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  409. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  410. package/Materials/Node/nodeMaterial.d.ts +4 -0
  411. package/Materials/Node/nodeMaterial.js +22 -11
  412. package/Materials/Node/nodeMaterial.js.map +1 -1
  413. package/Materials/Node/nodeMaterialBlock.js +12 -12
  414. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  415. package/Materials/Node/nodeMaterialBuildState.js +24 -24
  416. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  417. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
  418. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  419. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
  420. package/Materials/PBR/pbrBaseMaterial.js +4 -3
  421. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  422. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
  423. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  424. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  425. package/Materials/PBR/pbrMaterial.js +2 -3
  426. package/Materials/PBR/pbrMaterial.js.map +1 -1
  427. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
  428. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  429. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
  430. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  431. package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
  432. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  433. package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
  434. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  435. package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
  436. package/Materials/Textures/MultiviewRenderTarget.js +10 -2
  437. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  438. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  439. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  440. package/Materials/Textures/baseTexture.d.ts +1 -1
  441. package/Materials/Textures/baseTexture.js.map +1 -1
  442. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  443. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  444. package/Materials/Textures/internalTexture.d.ts +2 -0
  445. package/Materials/Textures/internalTexture.js +2 -0
  446. package/Materials/Textures/internalTexture.js.map +1 -1
  447. package/Materials/Textures/mirrorTexture.d.ts +2 -2
  448. package/Materials/Textures/mirrorTexture.js +7 -3
  449. package/Materials/Textures/mirrorTexture.js.map +1 -1
  450. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  451. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  452. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  453. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  454. package/Materials/Textures/refractionTexture.d.ts +1 -1
  455. package/Materials/Textures/refractionTexture.js +2 -2
  456. package/Materials/Textures/refractionTexture.js.map +1 -1
  457. package/Materials/Textures/renderTargetTexture.d.ts +1 -1
  458. package/Materials/Textures/renderTargetTexture.js +2 -2
  459. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  460. package/Materials/Textures/texture.d.ts +1 -1
  461. package/Materials/Textures/texture.js.map +1 -1
  462. package/Materials/Textures/videoTexture.js +1 -0
  463. package/Materials/Textures/videoTexture.js.map +1 -1
  464. package/Materials/effect.js +3 -3
  465. package/Materials/effect.js.map +1 -1
  466. package/Materials/material.d.ts +3 -1
  467. package/Materials/material.js +11 -3
  468. package/Materials/material.js.map +1 -1
  469. package/Materials/materialHelper.js +9 -1
  470. package/Materials/materialHelper.js.map +1 -1
  471. package/Materials/materialPluginManager.js +3 -3
  472. package/Materials/materialPluginManager.js.map +1 -1
  473. package/Materials/multiMaterial.d.ts +3 -1
  474. package/Materials/multiMaterial.js +13 -11
  475. package/Materials/multiMaterial.js.map +1 -1
  476. package/Materials/pushMaterial.d.ts +1 -1
  477. package/Materials/pushMaterial.js.map +1 -1
  478. package/Materials/shaderMaterial.js +8 -4
  479. package/Materials/shaderMaterial.js.map +1 -1
  480. package/Materials/shadowDepthWrapper.d.ts +1 -1
  481. package/Materials/shadowDepthWrapper.js +3 -3
  482. package/Materials/shadowDepthWrapper.js.map +1 -1
  483. package/Materials/standardMaterial.d.ts +2 -6
  484. package/Materials/standardMaterial.js +5 -10
  485. package/Materials/standardMaterial.js.map +1 -1
  486. package/Maths/math.size.js +1 -1
  487. package/Maths/math.size.js.map +1 -1
  488. package/Maths/math.vector.d.ts +4 -2
  489. package/Maths/math.vector.js +34 -32
  490. package/Maths/math.vector.js.map +1 -1
  491. package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
  492. package/Meshes/Builders/cylinderBuilder.js +1 -1
  493. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  494. package/Meshes/Builders/linesBuilder.js.map +1 -1
  495. package/Meshes/Compression/dracoCompression.d.ts +3 -0
  496. package/Meshes/Compression/dracoCompression.js +23 -7
  497. package/Meshes/Compression/dracoCompression.js.map +1 -1
  498. package/Meshes/abstractMesh.d.ts +6 -0
  499. package/Meshes/abstractMesh.js +18 -2
  500. package/Meshes/abstractMesh.js.map +1 -1
  501. package/Meshes/geometry.d.ts +1 -1
  502. package/Meshes/geometry.js +7 -3
  503. package/Meshes/geometry.js.map +1 -1
  504. package/Meshes/groundMesh.d.ts +1 -1
  505. package/Meshes/groundMesh.js.map +1 -1
  506. package/Meshes/mesh.js +21 -6
  507. package/Meshes/mesh.js.map +1 -1
  508. package/Meshes/mesh.lts.d.ts +1 -1
  509. package/Meshes/mesh.lts.js.map +1 -1
  510. package/Meshes/mesh.vertexData.d.ts +1 -1
  511. package/Meshes/mesh.vertexData.js +2 -2
  512. package/Meshes/mesh.vertexData.js.map +1 -1
  513. package/Meshes/polygonMesh.js +2 -2
  514. package/Meshes/polygonMesh.js.map +1 -1
  515. package/Meshes/subMesh.js +1 -2
  516. package/Meshes/subMesh.js.map +1 -1
  517. package/Meshes/subMesh.project.js +1 -2
  518. package/Meshes/subMesh.project.js.map +1 -1
  519. package/Meshes/thinInstanceMesh.js +5 -0
  520. package/Meshes/thinInstanceMesh.js.map +1 -1
  521. package/Meshes/trailMesh.d.ts +1 -1
  522. package/Meshes/trailMesh.js.map +1 -1
  523. package/Meshes/transformNode.js +40 -13
  524. package/Meshes/transformNode.js.map +1 -1
  525. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
  526. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
  527. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  528. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
  529. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  530. package/Misc/PerformanceViewer/performanceViewerCollector.js +6 -6
  531. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  532. package/Misc/assetsManager.d.ts +2 -1
  533. package/Misc/assetsManager.js +15 -1
  534. package/Misc/assetsManager.js.map +1 -1
  535. package/Misc/basis.js +1 -1
  536. package/Misc/basis.js.map +1 -1
  537. package/Misc/brdfTextureTools.js +4 -1
  538. package/Misc/brdfTextureTools.js.map +1 -1
  539. package/Misc/dds.js +7 -0
  540. package/Misc/dds.js.map +1 -1
  541. package/Misc/devTools.js +1 -1
  542. package/Misc/devTools.js.map +1 -1
  543. package/Misc/environmentTextureTools.js +2 -2
  544. package/Misc/environmentTextureTools.js.map +1 -1
  545. package/Misc/fileTools.js +4 -4
  546. package/Misc/fileTools.js.map +1 -1
  547. package/Misc/index.d.ts +1 -0
  548. package/Misc/index.js +1 -0
  549. package/Misc/index.js.map +1 -1
  550. package/Misc/khronosTextureContainer2.js +4 -3
  551. package/Misc/khronosTextureContainer2.js.map +1 -1
  552. package/Misc/reflector.js +6 -6
  553. package/Misc/reflector.js.map +1 -1
  554. package/Misc/tools.js +15 -13
  555. package/Misc/tools.js.map +1 -1
  556. package/Misc/uniqueIdGenerator.js +1 -1
  557. package/Misc/uniqueIdGenerator.js.map +1 -1
  558. package/Offline/database.js +1 -1
  559. package/Offline/database.js.map +1 -1
  560. package/Particles/baseParticleSystem.d.ts +4 -1
  561. package/Particles/baseParticleSystem.js +20 -5
  562. package/Particles/baseParticleSystem.js.map +1 -1
  563. package/Particles/gpuParticleSystem.js +2 -1
  564. package/Particles/gpuParticleSystem.js.map +1 -1
  565. package/Particles/particleHelper.js +2 -2
  566. package/Particles/particleHelper.js.map +1 -1
  567. package/Physics/Plugins/ammoJSPlugin.d.ts +5 -1
  568. package/Physics/Plugins/ammoJSPlugin.js +16 -11
  569. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  570. package/Physics/physicsEngine.d.ts +1 -0
  571. package/Physics/physicsEngine.js +3 -1
  572. package/Physics/physicsEngine.js.map +1 -1
  573. package/Physics/physicsImpostor.d.ts +2 -2
  574. package/Physics/physicsImpostor.js.map +1 -1
  575. package/PostProcesses/blurPostProcess.js +5 -5
  576. package/PostProcesses/blurPostProcess.js.map +1 -1
  577. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  578. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  579. package/PostProcesses/postProcess.js +1 -1
  580. package/PostProcesses/postProcess.js.map +1 -1
  581. package/PostProcesses/postProcessManager.js +2 -2
  582. package/PostProcesses/postProcessManager.js.map +1 -1
  583. package/Probes/reflectionProbe.js +2 -2
  584. package/Probes/reflectionProbe.js.map +1 -1
  585. package/Rendering/depthPeelingRenderer.js +3 -3
  586. package/Rendering/depthPeelingRenderer.js.map +1 -1
  587. package/Rendering/geometryBufferRenderer.js +8 -8
  588. package/Rendering/geometryBufferRenderer.js.map +1 -1
  589. package/Rendering/outlineRenderer.js +1 -1
  590. package/Rendering/outlineRenderer.js.map +1 -1
  591. package/Rendering/utilityLayerRenderer.js +4 -0
  592. package/Rendering/utilityLayerRenderer.js.map +1 -1
  593. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  594. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  595. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  596. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  597. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  598. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  599. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  600. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  601. package/Shaders/color.fragment.js +1 -1
  602. package/Shaders/color.fragment.js.map +1 -1
  603. package/Shaders/color.vertex.js +1 -1
  604. package/Shaders/color.vertex.js.map +1 -1
  605. package/Shaders/default.fragment.js +1 -1
  606. package/Shaders/default.fragment.js.map +1 -1
  607. package/Shaders/default.vertex.js +1 -1
  608. package/Shaders/default.vertex.js.map +1 -1
  609. package/Shaders/geometry.vertex.js +1 -1
  610. package/Shaders/geometry.vertex.js.map +1 -1
  611. package/Shaders/pbr.vertex.js +1 -1
  612. package/Shaders/pbr.vertex.js.map +1 -1
  613. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  614. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  615. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  616. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  617. package/Sprites/spriteManager.js +9 -10
  618. package/Sprites/spriteManager.js.map +1 -1
  619. package/Sprites/spriteMap.js +2 -2
  620. package/Sprites/spriteMap.js.map +1 -1
  621. package/Sprites/spriteRenderer.js +1 -1
  622. package/Sprites/spriteRenderer.js.map +1 -1
  623. package/XR/features/WebXRControllerPointerSelection.js +15 -9
  624. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  625. package/XR/features/WebXRDOMOverlay.js +1 -1
  626. package/XR/features/WebXRDOMOverlay.js.map +1 -1
  627. package/XR/features/WebXRHandTracking.js +30 -30
  628. package/XR/features/WebXRHandTracking.js.map +1 -1
  629. package/XR/features/WebXRImageTracking.js +2 -2
  630. package/XR/features/WebXRImageTracking.js.map +1 -1
  631. package/XR/features/WebXRLayers.d.ts +28 -5
  632. package/XR/features/WebXRLayers.js +54 -20
  633. package/XR/features/WebXRLayers.js.map +1 -1
  634. package/XR/features/WebXRNearInteraction.d.ts +35 -3
  635. package/XR/features/WebXRNearInteraction.js +201 -40
  636. package/XR/features/WebXRNearInteraction.js.map +1 -1
  637. package/XR/motionController/webXRAbstractMotionController.js +1 -1
  638. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  639. package/XR/motionController/webXRMotionControllerManager.js +2 -2
  640. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  641. package/XR/motionController/webXRProfiledMotionController.js +1 -1
  642. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  643. package/XR/webXRCamera.js +17 -4
  644. package/XR/webXRCamera.js.map +1 -1
  645. package/XR/webXRDefaultExperience.js +3 -0
  646. package/XR/webXRDefaultExperience.js.map +1 -1
  647. package/XR/webXREnterExitUI.js +2 -2
  648. package/XR/webXREnterExitUI.js.map +1 -1
  649. package/XR/webXRExperienceHelper.js +3 -2
  650. package/XR/webXRExperienceHelper.js.map +1 -1
  651. package/XR/webXRFeaturesManager.js +6 -6
  652. package/XR/webXRFeaturesManager.js.map +1 -1
  653. package/XR/webXRInputSource.js +3 -3
  654. package/XR/webXRInputSource.js.map +1 -1
  655. package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
  656. package/XR/webXRRenderTargetTextureProvider.js +37 -18
  657. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  658. package/XR/webXRSessionManager.d.ts +1 -0
  659. package/XR/webXRSessionManager.js +6 -1
  660. package/XR/webXRSessionManager.js.map +1 -1
  661. package/assetContainer.d.ts +1 -1
  662. package/assetContainer.js +4 -0
  663. package/assetContainer.js.map +1 -1
  664. package/node.d.ts +1 -1
  665. package/node.js.map +1 -1
  666. package/package.json +22 -13
  667. package/scene.d.ts +5 -2
  668. package/scene.js +31 -5
  669. package/scene.js.map +1 -1
  670. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +0 -1
  671. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +0 -1
  672. package/DeviceInput/Interfaces/inputInterfaces.js.map +0 -1
  673. package/DeviceInput/deviceInputSystem.d.ts +0 -60
  674. package/DeviceInput/deviceInputSystem.js +0 -84
  675. package/DeviceInput/deviceInputSystem.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vectorSplitterBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/vectorSplitterBlock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAC;AAEvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;GAEG;AACH;IAAyC,uCAAiB;IAEtD;;;OAGG;IACH,6BAAmB,IAAY;QAA/B,YACI,kBAAM,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC,SAehD;QAbG,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,qCAAqC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChF,KAAI,CAAC,aAAa,CAAC,MAAM,EAAE,qCAAqC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChF,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,qCAAqC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/E,KAAI,CAAC,cAAc,CAAC,KAAK,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAC1E,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QACzE,KAAI,CAAC,cAAc,CAAC,IAAI,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QACzE,KAAI,CAAC,cAAc,CAAC,GAAG,EAAE,qCAAqC,CAAC,KAAK,CAAC,CAAC;QACtE,KAAI,CAAC,cAAc,CAAC,GAAG,EAAE,qCAAqC,CAAC,KAAK,CAAC,CAAC;QACtE,KAAI,CAAC,cAAc,CAAC,GAAG,EAAE,qCAAqC,CAAC,KAAK,CAAC,CAAC;QACtE,KAAI,CAAC,cAAc,CAAC,GAAG,EAAE,qCAAqC,CAAC,KAAK,CAAC,CAAC;QAEtE,KAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;;IACnC,CAAC;IAED;;;OAGG;IACI,0CAAY,GAAnB;QACI,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAKD,sBAAW,qCAAI;QAHf;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,sCAAK;QAHhB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,qCAAI;QAHf;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,uCAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,sCAAK;QAHhB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,mCAAE;QAHb;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,kCAAC;QAHZ;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,kCAAC;QAHZ;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,kCAAC;QAHZ;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAKD,sBAAW,kCAAC;QAHZ;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAES,0CAAY,GAAtB,UAAuB,IAAY;QAC/B,QAAQ,IAAI,EAAE;YACV,KAAK,KAAK;gBACN,OAAO,MAAM,CAAC;YAClB,KAAK,MAAM;gBACP,OAAO,OAAO,CAAC;YACnB;gBACI,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;IAES,2CAAa,GAAvB,UAAwB,IAAY;QAChC,QAAQ,IAAI,EAAE;YACV,KAAK,IAAI;gBACL,OAAO,OAAO,CAAC;YACnB,KAAK,KAAK;gBACN,OAAO,QAAQ,CAAC;YACpB;gBACI,OAAO,IAAI,CAAC;SACnB;IACL,CAAC;IAES,yCAAW,GAArB,UAAsB,KAA6B;QAC/C,iBAAM,WAAW,YAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAEhG,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE/B,IAAI,SAAS,CAAC,YAAY,EAAE;YACxB,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE;gBACrB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,IAAG,aAAW,KAAK,CAAC,sBAAsB,gBAAa,CAAA,CAAC;aAC3H;iBAAM;gBACH,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,cAAW,CAAA,CAAC;aACpH;SACJ;QACD,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAChD,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAG,QAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,aAAU,CAAA,CAAC;SACtH;QACD,IAAI,QAAQ,CAAC,YAAY,EAAE;YACvB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,aAAU,CAAA,CAAC;SAClH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,YAAS,CAAA,CAAC;SAChH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,YAAS,CAAA,CAAC;SAChH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,YAAS,CAAA,CAAC;SAChH;QACD,IAAI,OAAO,CAAC,YAAY,EAAE;YACtB,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,IAAG,QAAM,KAAK,CAAC,sBAAsB,YAAS,CAAA,CAAC;SAChH;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,0BAAC;AAAD,CAAC,AArKD,CAAyC,iBAAiB,GAqKzD;;AAED,aAAa,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\n\r\n/**\r\n * Block used to expand a Vector3/4 into 4 outputs (one for each component)\r\n */\r\nexport class VectorSplitterBlock extends NodeMaterialBlock {\r\n\r\n /**\r\n * Create a new VectorSplitterBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\r\n this.registerInput(\"xyz \", NodeMaterialBlockConnectionPointTypes.Vector3, true);\r\n this.registerInput(\"xy \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n\r\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"zw\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"z\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"w\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.inputsAreExclusive = true;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VectorSplitterBlock\";\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (input)\r\n */\r\n public get xyzw(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (input)\r\n */\r\n public get xyzIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (input)\r\n */\r\n public get xyIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n */\r\n public get xyzOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n */\r\n public get xyOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the zw component (output)\r\n */\r\n public get zw(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the x component (output)\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the y component (output)\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the z component (output)\r\n */\r\n public get z(): NodeMaterialConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the w component (output)\r\n */\r\n public get w(): NodeMaterialConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n protected _inputRename(name: string) {\r\n switch (name) {\r\n case \"xy \":\r\n return \"xyIn\";\r\n case \"xyz \":\r\n return \"xyzIn\";\r\n default:\r\n return name;\r\n }\r\n }\r\n\r\n protected _outputRename(name: string) {\r\n switch (name) {\r\n case \"xy\":\r\n return \"xyOut\";\r\n case \"xyz\":\r\n return \"xyzOut\";\r\n default:\r\n return name;\r\n }\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let input = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn;\r\n\r\n let xyzOutput = this._outputs[0];\r\n let xyOutput = this._outputs[1];\r\n let zwOutput = this._outputs[2];\r\n let xOutput = this._outputs[3];\r\n let yOutput = this._outputs[4];\r\n let zOutput = this._outputs[5];\r\n let wOutput = this._outputs[6];\r\n\r\n if (xyzOutput.hasEndpoints) {\r\n if (input === this.xyIn) {\r\n state.compilationString += this._declareOutput(xyzOutput, state) + ` = vec3(${input.associatedVariableName}, 0.0);\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(xyzOutput, state) + ` = ${input.associatedVariableName}.xyz;\\r\\n`;\r\n }\r\n }\r\n if (zwOutput.hasEndpoints && this.xyzw.isConnected) {\r\n state.compilationString += this._declareOutput(zwOutput, state) + ` = ${this.xyzw.associatedVariableName}.zw;\\r\\n`;\r\n }\r\n if (xyOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(xyOutput, state) + ` = ${input.associatedVariableName}.xy;\\r\\n`;\r\n }\r\n if (xOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(xOutput, state) + ` = ${input.associatedVariableName}.x;\\r\\n`;\r\n }\r\n if (yOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(yOutput, state) + ` = ${input.associatedVariableName}.y;\\r\\n`;\r\n }\r\n if (zOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(zOutput, state) + ` = ${input.associatedVariableName}.z;\\r\\n`;\r\n }\r\n if (wOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(wOutput, state) + ` = ${input.associatedVariableName}.w;\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.VectorSplitterBlock\", VectorSplitterBlock);"]}
1
+ {"version":3,"file":"vectorSplitterBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/vectorSplitterBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\n\r\n/**\r\n * Block used to expand a Vector3/4 into 4 outputs (one for each component)\r\n */\r\nexport class VectorSplitterBlock extends NodeMaterialBlock {\r\n\r\n /**\r\n * Create a new VectorSplitterBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"xyzw\", NodeMaterialBlockConnectionPointTypes.Vector4, true);\r\n this.registerInput(\"xyz \", NodeMaterialBlockConnectionPointTypes.Vector3, true);\r\n this.registerInput(\"xy \", NodeMaterialBlockConnectionPointTypes.Vector2, true);\r\n\r\n this.registerOutput(\"xyz\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerOutput(\"xy\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"zw\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"z\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"w\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.inputsAreExclusive = true;\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VectorSplitterBlock\";\r\n }\r\n\r\n /**\r\n * Gets the xyzw component (input)\r\n */\r\n public get xyzw(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (input)\r\n */\r\n public get xyzIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the xy component (input)\r\n */\r\n public get xyIn(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the xyz component (output)\r\n */\r\n public get xyzOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the xy component (output)\r\n */\r\n public get xyOut(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the zw component (output)\r\n */\r\n public get zw(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the x component (output)\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the y component (output)\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the z component (output)\r\n */\r\n public get z(): NodeMaterialConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Gets the w component (output)\r\n */\r\n public get w(): NodeMaterialConnectionPoint {\r\n return this._outputs[6];\r\n }\r\n\r\n protected _inputRename(name: string) {\r\n switch (name) {\r\n case \"xy \":\r\n return \"xyIn\";\r\n case \"xyz \":\r\n return \"xyzIn\";\r\n default:\r\n return name;\r\n }\r\n }\r\n\r\n protected _outputRename(name: string) {\r\n switch (name) {\r\n case \"xy\":\r\n return \"xyOut\";\r\n case \"xyz\":\r\n return \"xyzOut\";\r\n default:\r\n return name;\r\n }\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let input = this.xyzw.isConnected ? this.xyzw : this.xyzIn.isConnected ? this.xyzIn : this.xyIn;\r\n\r\n let xyzOutput = this._outputs[0];\r\n let xyOutput = this._outputs[1];\r\n let zwOutput = this._outputs[2];\r\n let xOutput = this._outputs[3];\r\n let yOutput = this._outputs[4];\r\n let zOutput = this._outputs[5];\r\n let wOutput = this._outputs[6];\r\n\r\n if (xyzOutput.hasEndpoints) {\r\n if (input === this.xyIn) {\r\n state.compilationString += this._declareOutput(xyzOutput, state) + ` = vec3(${input.associatedVariableName}, 0.0);\\r\\n`;\r\n } else {\r\n state.compilationString += this._declareOutput(xyzOutput, state) + ` = ${input.associatedVariableName}.xyz;\\r\\n`;\r\n }\r\n }\r\n if (zwOutput.hasEndpoints && this.xyzw.isConnected) {\r\n state.compilationString += this._declareOutput(zwOutput, state) + ` = ${this.xyzw.associatedVariableName}.zw;\\r\\n`;\r\n }\r\n if (xyOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(xyOutput, state) + ` = ${input.associatedVariableName}.xy;\\r\\n`;\r\n }\r\n if (xOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(xOutput, state) + ` = ${input.associatedVariableName}.x;\\r\\n`;\r\n }\r\n if (yOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(yOutput, state) + ` = ${input.associatedVariableName}.y;\\r\\n`;\r\n }\r\n if (zOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(zOutput, state) + ` = ${input.associatedVariableName}.z;\\r\\n`;\r\n }\r\n if (wOutput.hasEndpoints) {\r\n state.compilationString += this._declareOutput(wOutput, state) + ` = ${input.associatedVariableName}.w;\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.VectorSplitterBlock\", VectorSplitterBlock);"]}
@@ -71,7 +71,7 @@ var ViewDirectionBlock = /** @class */ (function (_super) {
71
71
  ViewDirectionBlock.prototype._buildBlock = function (state) {
72
72
  _super.prototype._buildBlock.call(this, state);
73
73
  var output = this._outputs[0];
74
- state.compilationString += this._declareOutput(output, state) + (" = normalize(" + this.cameraPosition.associatedVariableName + " - " + this.worldPosition.associatedVariableName + ".xyz);\r\n");
74
+ state.compilationString += this._declareOutput(output, state) + " = normalize(".concat(this.cameraPosition.associatedVariableName, " - ").concat(this.worldPosition.associatedVariableName, ".xyz);\r\n");
75
75
  return this;
76
76
  };
77
77
  return ViewDirectionBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"viewDirectionBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/viewDirectionBlock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAC;AAGvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD;;GAEG;AACH;IAAwC,sCAAiB;IACrD;;;OAGG;IACH,4BAAmB,IAAY;QAA/B,YACI,kBAAM,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC,SAMhD;QAJG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QACnF,KAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAEpF,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;;IACjF,CAAC;IAED;;;OAGG;IACI,yCAAY,GAAnB;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAKD,sBAAW,6CAAa;QAHxB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,8CAAc;QAHzB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,sCAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAEM,0CAAa,GAApB,UAAqB,QAAsB;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YAClC,IAAI,mBAAmB,GAAG,QAAQ,CAAC,wBAAwB,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,KAAK,wBAAwB,CAAC,cAAc,EAAzD,CAAyD,CAAC,CAAC;YAE9H,IAAI,CAAC,mBAAmB,EAAE;gBACtB,mBAAmB,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACvD,mBAAmB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;aACjF;YACD,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7D;IACL,CAAC;IAES,wCAAW,GAArB,UAAsB,KAA6B;QAC/C,iBAAM,WAAW,YAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE9B,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,IAAG,kBAAgB,IAAI,CAAC,cAAc,CAAC,sBAAsB,WAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,eAAY,CAAA,CAAC;QAEtL,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,yBAAC;AAAD,CAAC,AAhED,CAAwC,iBAAiB,GAgExD;;AAED,aAAa,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { NodeMaterial } from '../nodeMaterial';\r\nimport { NodeMaterialSystemValues } from '../Enums/nodeMaterialSystemValues';\r\nimport { InputBlock } from './Input/inputBlock';\r\n/**\r\n * Block used to get the view direction\r\n */\r\nexport class ViewDirectionBlock extends NodeMaterialBlock {\r\n /**\r\n * Creates a new ViewDirectionBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4);\r\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"ViewDirectionBlock\";\r\n }\r\n\r\n /**\r\n * Gets the world position component\r\n */\r\n public get worldPosition(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the camera position component\r\n */\r\n public get cameraPosition(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public autoConfigure(material: NodeMaterial) {\r\n if (!this.cameraPosition.isConnected) {\r\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition);\r\n\r\n if (!cameraPositionInput) {\r\n cameraPositionInput = new InputBlock(\"cameraPosition\");\r\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\r\n }\r\n cameraPositionInput.output.connectTo(this.cameraPosition);\r\n }\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let output = this._outputs[0];\r\n\r\n state.compilationString += this._declareOutput(output, state) + ` = normalize(${this.cameraPosition.associatedVariableName} - ${this.worldPosition.associatedVariableName}.xyz);\\r\\n`;\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ViewDirectionBlock\", ViewDirectionBlock);"]}
1
+ {"version":3,"file":"viewDirectionBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/viewDirectionBlock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAC;AAGvG,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD;;GAEG;AACH;IAAwC,sCAAiB;IACrD;;;OAGG;IACH,4BAAmB,IAAY;QAA/B,YACI,kBAAM,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC,SAMhD;QAJG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QACnF,KAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;QAEpF,KAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,qCAAqC,CAAC,OAAO,CAAC,CAAC;;IACjF,CAAC;IAED;;;OAGG;IACI,yCAAY,GAAnB;QACI,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAKD,sBAAW,6CAAa;QAHxB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,8CAAc;QAHzB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAKD,sBAAW,sCAAM;QAHjB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;;;OAAA;IAEM,0CAAa,GAApB,UAAqB,QAAsB;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;YAClC,IAAI,mBAAmB,GAAG,QAAQ,CAAC,wBAAwB,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,WAAW,KAAK,wBAAwB,CAAC,cAAc,EAAzD,CAAyD,CAAC,CAAC;YAE9H,IAAI,CAAC,mBAAmB,EAAE;gBACtB,mBAAmB,GAAG,IAAI,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACvD,mBAAmB,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;aACjF;YACD,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7D;IACL,CAAC;IAES,wCAAW,GAArB,UAAsB,KAA6B;QAC/C,iBAAM,WAAW,YAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE9B,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,uBAAgB,IAAI,CAAC,cAAc,CAAC,sBAAsB,gBAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,eAAY,CAAC;QAEtL,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,yBAAC;AAAD,CAAC,AAhED,CAAwC,iBAAiB,GAgExD;;AAED,aAAa,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { NodeMaterial } from '../nodeMaterial';\r\nimport { NodeMaterialSystemValues } from '../Enums/nodeMaterialSystemValues';\r\nimport { InputBlock } from './Input/inputBlock';\r\n/**\r\n * Block used to get the view direction\r\n */\r\nexport class ViewDirectionBlock extends NodeMaterialBlock {\r\n /**\r\n * Creates a new ViewDirectionBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4);\r\n this.registerInput(\"cameraPosition\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"ViewDirectionBlock\";\r\n }\r\n\r\n /**\r\n * Gets the world position component\r\n */\r\n public get worldPosition(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the camera position component\r\n */\r\n public get cameraPosition(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public autoConfigure(material: NodeMaterial) {\r\n if (!this.cameraPosition.isConnected) {\r\n let cameraPositionInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.CameraPosition);\r\n\r\n if (!cameraPositionInput) {\r\n cameraPositionInput = new InputBlock(\"cameraPosition\");\r\n cameraPositionInput.setAsSystemValue(NodeMaterialSystemValues.CameraPosition);\r\n }\r\n cameraPositionInput.output.connectTo(this.cameraPosition);\r\n }\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let output = this._outputs[0];\r\n\r\n state.compilationString += this._declareOutput(output, state) + ` = normalize(${this.cameraPosition.associatedVariableName} - ${this.worldPosition.associatedVariableName}.xyz);\\r\\n`;\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ViewDirectionBlock\", ViewDirectionBlock);"]}
@@ -89,14 +89,14 @@ var VoronoiNoiseBlock = /** @class */ (function (_super) {
89
89
  state._emitFunction('voronoi', functionString, '// Voronoi');
90
90
  var tempOutput = state._getFreeVariableName("tempOutput");
91
91
  var tempCells = state._getFreeVariableName("tempCells");
92
- state.compilationString += "float " + tempOutput + " = 0.0;\r\n";
93
- state.compilationString += "float " + tempCells + " = 0.0;\r\n";
94
- state.compilationString += "voronoi(" + this.seed.associatedVariableName + ", " + this.offset.associatedVariableName + ", " + this.density.associatedVariableName + ", " + tempOutput + ", " + tempCells + ");\r\n";
92
+ state.compilationString += "float ".concat(tempOutput, " = 0.0;\r\n");
93
+ state.compilationString += "float ".concat(tempCells, " = 0.0;\r\n");
94
+ state.compilationString += "voronoi(".concat(this.seed.associatedVariableName, ", ").concat(this.offset.associatedVariableName, ", ").concat(this.density.associatedVariableName, ", ").concat(tempOutput, ", ").concat(tempCells, ");\r\n");
95
95
  if (this.output.hasEndpoints) {
96
- state.compilationString += this._declareOutput(this.output, state) + (" = " + tempOutput + ";\r\n");
96
+ state.compilationString += this._declareOutput(this.output, state) + " = ".concat(tempOutput, ";\r\n");
97
97
  }
98
98
  if (this.cells.hasEndpoints) {
99
- state.compilationString += this._declareOutput(this.cells, state) + (" = " + tempCells + ";\r\n");
99
+ state.compilationString += this._declareOutput(this.cells, state) + " = ".concat(tempCells, ";\r\n");
100
100
  }
101
101
  return this;
102
102
  };
@@ -1 +1 @@
1
- {"version":3,"file":"voronoiNoiseBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/voronoiNoiseBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\n\r\n/**\r\n * block used to Generate a Voronoi Noise Pattern\r\n */\r\nexport class VoronoiNoiseBlock extends NodeMaterialBlock {\r\n /**\r\n * Creates a new VoronoiNoiseBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerInput(\"offset\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerInput(\"density\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"cells\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VoronoiNoiseBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the offset input component\r\n */\r\n public get offset(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the density input component\r\n */\r\n public get density(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get cells(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n let functionString = `vec2 voronoiRandom(vec2 seed, float offset){\r\n mat2 m = mat2(15.27, 47.63, 99.41, 89.98);\r\n vec2 uv = fract(sin(m * seed) * 46839.32);\r\n return vec2(sin(uv.y * offset) * 0.5 + 0.5, cos(uv.x * offset) * 0.5 + 0.5);\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoiRandom', functionString, '// Voronoi random generator');\r\n\r\n functionString = `void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\r\n vec2 g = floor(seed * density);\r\n vec2 f = fract(seed * density);\r\n float t = 8.0;\r\n vec3 res = vec3(8.0, 0.0, 0.0);\r\n\r\n for(int y=-1; y<=1; y++)\r\n {\r\n for(int x=-1; x<=1; x++)\r\n {\r\n vec2 lattice = vec2(x,y);\r\n vec2 randomOffset = voronoiRandom(lattice + g, offset);\r\n float d = distance(lattice + randomOffset, f);\r\n if(d < res.x)\r\n {\r\n res = vec3(d, randomOffset.x, randomOffset.y);\r\n outValue = res.x;\r\n cells = res.y;\r\n }\r\n }\r\n }\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoi', functionString, '// Voronoi');\r\n\r\n let tempOutput = state._getFreeVariableName(\"tempOutput\");\r\n let tempCells = state._getFreeVariableName(\"tempCells\");\r\n\r\n state.compilationString += `float ${tempOutput} = 0.0;\\r\\n`;\r\n state.compilationString += `float ${tempCells} = 0.0;\\r\\n`;\r\n state.compilationString += `voronoi(${this.seed.associatedVariableName}, ${this.offset.associatedVariableName}, ${this.density.associatedVariableName}, ${tempOutput}, ${tempCells});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempOutput};\\r\\n`;\r\n }\r\n\r\n if (this.cells.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.cells, state) + ` = ${tempCells};\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n\r\nRegisterClass(\"BABYLON.VoronoiNoiseBlock\", VoronoiNoiseBlock);"]}
1
+ {"version":3,"file":"voronoiNoiseBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/voronoiNoiseBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\n\r\n/**\r\n * block used to Generate a Voronoi Noise Pattern\r\n */\r\nexport class VoronoiNoiseBlock extends NodeMaterialBlock {\r\n /**\r\n * Creates a new VoronoiNoiseBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerInput(\"offset\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerInput(\"density\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"cells\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"VoronoiNoiseBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the offset input component\r\n */\r\n public get offset(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the density input component\r\n */\r\n public get density(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get cells(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n let functionString = `vec2 voronoiRandom(vec2 seed, float offset){\r\n mat2 m = mat2(15.27, 47.63, 99.41, 89.98);\r\n vec2 uv = fract(sin(m * seed) * 46839.32);\r\n return vec2(sin(uv.y * offset) * 0.5 + 0.5, cos(uv.x * offset) * 0.5 + 0.5);\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoiRandom', functionString, '// Voronoi random generator');\r\n\r\n functionString = `void voronoi(vec2 seed, float offset, float density, out float outValue, out float cells){\r\n vec2 g = floor(seed * density);\r\n vec2 f = fract(seed * density);\r\n float t = 8.0;\r\n vec3 res = vec3(8.0, 0.0, 0.0);\r\n\r\n for(int y=-1; y<=1; y++)\r\n {\r\n for(int x=-1; x<=1; x++)\r\n {\r\n vec2 lattice = vec2(x,y);\r\n vec2 randomOffset = voronoiRandom(lattice + g, offset);\r\n float d = distance(lattice + randomOffset, f);\r\n if(d < res.x)\r\n {\r\n res = vec3(d, randomOffset.x, randomOffset.y);\r\n outValue = res.x;\r\n cells = res.y;\r\n }\r\n }\r\n }\r\n }\r\n `;\r\n\r\n state._emitFunction('voronoi', functionString, '// Voronoi');\r\n\r\n let tempOutput = state._getFreeVariableName(\"tempOutput\");\r\n let tempCells = state._getFreeVariableName(\"tempCells\");\r\n\r\n state.compilationString += `float ${tempOutput} = 0.0;\\r\\n`;\r\n state.compilationString += `float ${tempCells} = 0.0;\\r\\n`;\r\n state.compilationString += `voronoi(${this.seed.associatedVariableName}, ${this.offset.associatedVariableName}, ${this.density.associatedVariableName}, ${tempOutput}, ${tempCells});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempOutput};\\r\\n`;\r\n }\r\n\r\n if (this.cells.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.cells, state) + ` = ${tempCells};\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n\r\nRegisterClass(\"BABYLON.VoronoiNoiseBlock\", VoronoiNoiseBlock);"]}
@@ -68,15 +68,15 @@ var WaveBlock = /** @class */ (function (_super) {
68
68
  var output = this._outputs[0];
69
69
  switch (this.kind) {
70
70
  case WaveBlockKind.SawTooth: {
71
- state.compilationString += this._declareOutput(output, state) + (" = " + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + ");\r\n");
71
+ state.compilationString += this._declareOutput(output, state) + " = ".concat(this.input.associatedVariableName, " - floor(0.5 + ").concat(this.input.associatedVariableName, ");\r\n");
72
72
  break;
73
73
  }
74
74
  case WaveBlockKind.Square: {
75
- state.compilationString += this._declareOutput(output, state) + (" = 1.0 - 2.0 * round(fract(" + this.input.associatedVariableName + "));\r\n");
75
+ state.compilationString += this._declareOutput(output, state) + " = 1.0 - 2.0 * round(fract(".concat(this.input.associatedVariableName, "));\r\n");
76
76
  break;
77
77
  }
78
78
  case WaveBlockKind.Triangle: {
79
- state.compilationString += this._declareOutput(output, state) + (" = 2.0 * abs(2.0 * (" + this.input.associatedVariableName + " - floor(0.5 + " + this.input.associatedVariableName + "))) - 1.0;\r\n");
79
+ state.compilationString += this._declareOutput(output, state) + " = 2.0 * abs(2.0 * (".concat(this.input.associatedVariableName, " - floor(0.5 + ").concat(this.input.associatedVariableName, "))) - 1.0;\r\n");
80
80
  break;
81
81
  }
82
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"waveBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/waveBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\n\r\n/**\r\n * Operations supported by the Wave block\r\n */\r\nexport enum WaveBlockKind {\r\n /** SawTooth */\r\n SawTooth,\r\n /** Square */\r\n Square,\r\n /** Triangle */\r\n Triangle\r\n}\r\n\r\n/**\r\n * Block used to apply wave operation to floats\r\n */\r\nexport class WaveBlock extends NodeMaterialBlock {\r\n\r\n /**\r\n * Gets or sets the kibnd of wave to be applied by the block\r\n */\r\n public kind = WaveBlockKind.SawTooth;\r\n\r\n /**\r\n * Creates a new WaveBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WaveBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let output = this._outputs[0];\r\n\r\n switch (this.kind) {\r\n case WaveBlockKind.SawTooth: {\r\n state.compilationString += this._declareOutput(output, state) + ` = ${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName});\\r\\n`;\r\n break;\r\n }\r\n case WaveBlockKind.Square: {\r\n state.compilationString += this._declareOutput(output, state) + ` = 1.0 - 2.0 * round(fract(${this.input.associatedVariableName}));\\r\\n`;\r\n break;\r\n }\r\n case WaveBlockKind.Triangle: {\r\n state.compilationString += this._declareOutput(output, state) + ` = 2.0 * abs(2.0 * (${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName}))) - 1.0;\\r\\n`;\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.kind = this.kind;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.kind = serializationObject.kind;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WaveBlock\", WaveBlock);"]}
1
+ {"version":3,"file":"waveBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/waveBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\n\r\n/**\r\n * Operations supported by the Wave block\r\n */\r\nexport enum WaveBlockKind {\r\n /** SawTooth */\r\n SawTooth,\r\n /** Square */\r\n Square,\r\n /** Triangle */\r\n Triangle\r\n}\r\n\r\n/**\r\n * Block used to apply wave operation to floats\r\n */\r\nexport class WaveBlock extends NodeMaterialBlock {\r\n\r\n /**\r\n * Gets or sets the kibnd of wave to be applied by the block\r\n */\r\n public kind = WaveBlockKind.SawTooth;\r\n\r\n /**\r\n * Creates a new WaveBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n\r\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Matrix);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WaveBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let output = this._outputs[0];\r\n\r\n switch (this.kind) {\r\n case WaveBlockKind.SawTooth: {\r\n state.compilationString += this._declareOutput(output, state) + ` = ${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName});\\r\\n`;\r\n break;\r\n }\r\n case WaveBlockKind.Square: {\r\n state.compilationString += this._declareOutput(output, state) + ` = 1.0 - 2.0 * round(fract(${this.input.associatedVariableName}));\\r\\n`;\r\n break;\r\n }\r\n case WaveBlockKind.Triangle: {\r\n state.compilationString += this._declareOutput(output, state) + ` = 2.0 * abs(2.0 * (${this.input.associatedVariableName} - floor(0.5 + ${this.input.associatedVariableName}))) - 1.0;\\r\\n`;\r\n break;\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.kind = this.kind;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.kind = serializationObject.kind;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WaveBlock\", WaveBlock);"]}
@@ -245,15 +245,15 @@ var WorleyNoise3DBlock = /** @class */ (function (_super) {
245
245
  functionString += "}\r\n\r\n";
246
246
  state._emitFunction('worley3D', functionString, '// Worley3D');
247
247
  var tempVariable = state._getFreeVariableName("worleyTemp");
248
- state.compilationString += "vec2 " + tempVariable + " = worley(" + this.seed.associatedVariableName + ", " + this.jitter.associatedVariableName + ", " + this.manhattanDistance + ");\r\n";
248
+ state.compilationString += "vec2 ".concat(tempVariable, " = worley(").concat(this.seed.associatedVariableName, ", ").concat(this.jitter.associatedVariableName, ", ").concat(this.manhattanDistance, ");\r\n");
249
249
  if (this.output.hasEndpoints) {
250
- state.compilationString += this._declareOutput(this.output, state) + (" = " + tempVariable + ";\r\n");
250
+ state.compilationString += this._declareOutput(this.output, state) + " = ".concat(tempVariable, ";\r\n");
251
251
  }
252
252
  if (this.x.hasEndpoints) {
253
- state.compilationString += this._declareOutput(this.x, state) + (" = " + tempVariable + ".x;\r\n");
253
+ state.compilationString += this._declareOutput(this.x, state) + " = ".concat(tempVariable, ".x;\r\n");
254
254
  }
255
255
  if (this.y.hasEndpoints) {
256
- state.compilationString += this._declareOutput(this.y, state) + (" = " + tempVariable + ".y;\r\n");
256
+ state.compilationString += this._declareOutput(this.y, state) + " = ".concat(tempVariable, ".y;\r\n");
257
257
  }
258
258
  return this;
259
259
  };
@@ -261,7 +261,7 @@ var WorleyNoise3DBlock = /** @class */ (function (_super) {
261
261
  * Exposes the properties to the UI?
262
262
  */
263
263
  WorleyNoise3DBlock.prototype._dumpPropertiesCode = function () {
264
- var codeString = _super.prototype._dumpPropertiesCode.call(this) + (this._codeVariableName + ".manhattanDistance = " + this.manhattanDistance + ";\r\n");
264
+ var codeString = _super.prototype._dumpPropertiesCode.call(this) + "".concat(this._codeVariableName, ".manhattanDistance = ").concat(this.manhattanDistance, ";\r\n");
265
265
  return codeString;
266
266
  };
267
267
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"worleyNoise3DBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/worleyNoise3DBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../nodeMaterialDecorator\";\r\n\r\n/**\r\n * block used to Generate a Worley Noise 3D Noise Pattern\r\n */\r\n\r\n// Source: https://github.com/Erkaman/glsl-worley\r\n// Converted to BJS by Pryme8\r\n//\r\n// Worley Noise 3D\r\n// Return vec2 value range of -1.0->1.0, F1-F2 respectivly\r\n\r\nexport class WorleyNoise3DBlock extends NodeMaterialBlock {\r\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\r\n @editableInPropertyPage(\"Use Manhattan Distance\", PropertyTypeForEdition.Boolean, \"PROPERTIES\", { \"notifiers\": { \"update\": false } })\r\n public manhattanDistance = false;\r\n\r\n /**\r\n * Creates a new WorleyNoise3DBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerInput(\"jitter\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WorleyNoise3DBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the jitter input component\r\n */\r\n public get jitter(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the x component\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the y component\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n if (!this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints) {\r\n return;\r\n }\r\n\r\n let functionString = `vec3 permute(vec3 x){\\r\\n`;\r\n functionString += ` return mod((34.0 * x + 1.0) * x, 289.0);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\\r\\n`;\r\n functionString += ` return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\\r\\n`;\r\n functionString += ` float K = 0.142857142857; // 1/7\\r\\n`;\r\n functionString += ` float Ko = 0.428571428571; // 1/2-K/2\\r\\n`;\r\n functionString += ` float K2 = 0.020408163265306; // 1/(7*7)\\r\\n`;\r\n functionString += ` float Kz = 0.166666666667; // 1/6\\r\\n`;\r\n functionString += ` float Kzo = 0.416666666667; // 1/2-1/6*2\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pi = mod(floor(P), 289.0);\\r\\n`;\r\n functionString += ` vec3 Pf = fract(P) - 0.5;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\\r\\n`;\r\n functionString += ` vec3 p1 = permute(p + Pi.y - 1.0);\\r\\n`;\r\n functionString += ` vec3 p2 = permute(p + Pi.y);\\r\\n`;\r\n functionString += ` vec3 p3 = permute(p + Pi.y + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p12 = permute(p1 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p22 = permute(p2 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p32 = permute(p3 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox11 = fract(p11*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox12 = fract(p12*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox13 = fract(p13*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox21 = fract(p21*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox22 = fract(p22*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox23 = fract(p23*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox31 = fract(p31*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox32 = fract(p32*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox33 = fract(p33*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx11 = Pfx + jitter*ox11;\\r\\n`;\r\n functionString += ` vec3 dy11 = Pfy.x + jitter*oy11;\\r\\n`;\r\n functionString += ` vec3 dz11 = Pfz.x + jitter*oz11;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx12 = Pfx + jitter*ox12;\\r\\n`;\r\n functionString += ` vec3 dy12 = Pfy.x + jitter*oy12;\\r\\n`;\r\n functionString += ` vec3 dz12 = Pfz.y + jitter*oz12;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx13 = Pfx + jitter*ox13;\\r\\n`;\r\n functionString += ` vec3 dy13 = Pfy.x + jitter*oy13;\\r\\n`;\r\n functionString += ` vec3 dz13 = Pfz.z + jitter*oz13;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx21 = Pfx + jitter*ox21;\\r\\n`;\r\n functionString += ` vec3 dy21 = Pfy.y + jitter*oy21;\\r\\n`;\r\n functionString += ` vec3 dz21 = Pfz.x + jitter*oz21;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx22 = Pfx + jitter*ox22;\\r\\n`;\r\n functionString += ` vec3 dy22 = Pfy.y + jitter*oy22;\\r\\n`;\r\n functionString += ` vec3 dz22 = Pfz.y + jitter*oz22;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx23 = Pfx + jitter*ox23;\\r\\n`;\r\n functionString += ` vec3 dy23 = Pfy.y + jitter*oy23;\\r\\n`;\r\n functionString += ` vec3 dz23 = Pfz.z + jitter*oz23;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx31 = Pfx + jitter*ox31;\\r\\n`;\r\n functionString += ` vec3 dy31 = Pfy.z + jitter*oy31;\\r\\n`;\r\n functionString += ` vec3 dz31 = Pfz.x + jitter*oz31;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx32 = Pfx + jitter*ox32;\\r\\n`;\r\n functionString += ` vec3 dy32 = Pfy.z + jitter*oy32;\\r\\n`;\r\n functionString += ` vec3 dz32 = Pfz.y + jitter*oz32;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx33 = Pfx + jitter*ox33;\\r\\n`;\r\n functionString += ` vec3 dy33 = Pfy.z + jitter*oy33;\\r\\n`;\r\n functionString += ` vec3 dz33 = Pfz.z + jitter*oz33;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d1a = min(d11, d12);\\r\\n`;\r\n functionString += ` d12 = max(d11, d12);\\r\\n`;\r\n functionString += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\\r\\n`;\r\n functionString += ` d13 = max(d1a, d13);\\r\\n`;\r\n functionString += ` d12 = min(d12, d13); // 2nd smallest now not in d13\\r\\n`;\r\n functionString += ` vec3 d2a = min(d21, d22);\\r\\n`;\r\n functionString += ` d22 = max(d21, d22);\\r\\n`;\r\n functionString += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\\r\\n`;\r\n functionString += ` d23 = max(d2a, d23);\\r\\n`;\r\n functionString += ` d22 = min(d22, d23); // 2nd smallest now not in d23\\r\\n`;\r\n functionString += ` vec3 d3a = min(d31, d32);\\r\\n`;\r\n functionString += ` d32 = max(d31, d32);\\r\\n`;\r\n functionString += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\\r\\n`;\r\n functionString += ` d33 = max(d3a, d33);\\r\\n`;\r\n functionString += ` d32 = min(d32, d33); // 2nd smallest now not in d33\\r\\n`;\r\n functionString += ` vec3 da = min(d11, d21);\\r\\n`;\r\n functionString += ` d21 = max(d11, d21);\\r\\n`;\r\n functionString += ` d11 = min(da, d31); // Smallest now in d11\\r\\n`;\r\n functionString += ` d31 = max(da, d31); // 2nd smallest now not in d31\\r\\n`;\r\n functionString += ` d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\\r\\n`;\r\n functionString += ` d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\\r\\n`;\r\n functionString += ` d12 = min(d12, d21); // 2nd smallest now not in d21\\r\\n`;\r\n functionString += ` d12 = min(d12, d22); // nor in d22\\r\\n`;\r\n functionString += ` d12 = min(d12, d31); // nor in d31\\r\\n`;\r\n functionString += ` d12 = min(d12, d32); // nor in d32\\r\\n`;\r\n functionString += ` d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d12.z); // Only two more to go\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d11.z); // Done! (Phew!)\\r\\n`;\r\n functionString += ` return sqrt(d11.xy); // F1, F2\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n state._emitFunction('worley3D', functionString, '// Worley3D');\r\n\r\n const tempVariable = state._getFreeVariableName(\"worleyTemp\");\r\n\r\n state.compilationString += `vec2 ${tempVariable} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempVariable};\\r\\n`;\r\n }\r\n\r\n if (this.x.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.x, state) + ` = ${tempVariable}.x;\\r\\n`;\r\n }\r\n\r\n if (this.y.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.y, state) + ` = ${tempVariable}.y;\\r\\n`;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Exposes the properties to the UI?\r\n */\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n /**\r\n * Exposes the properties to the Serialize?\r\n */\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.manhattanDistance = this.manhattanDistance;\r\n\r\n return serializationObject;\r\n }\r\n /**\r\n * Exposes the properties to the deserialize?\r\n */\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.manhattanDistance = serializationObject.manhattanDistance;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WorleyNoise3DBlock\", WorleyNoise3DBlock);"]}
1
+ {"version":3,"file":"worleyNoise3DBlock.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Blocks/worleyNoise3DBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { NodeMaterialBlock } from '../nodeMaterialBlock';\r\nimport { NodeMaterialBlockConnectionPointTypes } from '../Enums/nodeMaterialBlockConnectionPointTypes';\r\nimport { NodeMaterialBuildState } from '../nodeMaterialBuildState';\r\nimport { NodeMaterialConnectionPoint } from '../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../Misc/typeStore';\r\nimport { Scene } from '../../../scene';\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"../nodeMaterialDecorator\";\r\n\r\n/**\r\n * block used to Generate a Worley Noise 3D Noise Pattern\r\n */\r\n\r\n// Source: https://github.com/Erkaman/glsl-worley\r\n// Converted to BJS by Pryme8\r\n//\r\n// Worley Noise 3D\r\n// Return vec2 value range of -1.0->1.0, F1-F2 respectivly\r\n\r\nexport class WorleyNoise3DBlock extends NodeMaterialBlock {\r\n /** Gets or sets a boolean indicating that normal should be inverted on X axis */\r\n @editableInPropertyPage(\"Use Manhattan Distance\", PropertyTypeForEdition.Boolean, \"PROPERTIES\", { \"notifiers\": { \"update\": false } })\r\n public manhattanDistance = false;\r\n\r\n /**\r\n * Creates a new WorleyNoise3DBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.Neutral);\r\n this.registerInput(\"seed\", NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this.registerInput(\"jitter\", NodeMaterialBlockConnectionPointTypes.Float);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Vector2);\r\n this.registerOutput(\"x\", NodeMaterialBlockConnectionPointTypes.Float);\r\n this.registerOutput(\"y\", NodeMaterialBlockConnectionPointTypes.Float);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public getClassName() {\r\n return \"WorleyNoise3DBlock\";\r\n }\r\n\r\n /**\r\n * Gets the seed input component\r\n */\r\n public get seed(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the jitter input component\r\n */\r\n public get jitter(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the x component\r\n */\r\n public get x(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the y component\r\n */\r\n public get y(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (!this.seed.isConnected) {\r\n return;\r\n }\r\n\r\n if (!this.output.hasEndpoints && !this.x.hasEndpoints && !this.y.hasEndpoints) {\r\n return;\r\n }\r\n\r\n let functionString = `vec3 permute(vec3 x){\\r\\n`;\r\n functionString += ` return mod((34.0 * x + 1.0) * x, 289.0);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec3 dist(vec3 x, vec3 y, vec3 z, bool manhattanDistance){\\r\\n`;\r\n functionString += ` return manhattanDistance ? abs(x) + abs(y) + abs(z) : (x * x + y * y + z * z);\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n functionString += `vec2 worley(vec3 P, float jitter, bool manhattanDistance){\\r\\n`;\r\n functionString += ` float K = 0.142857142857; // 1/7\\r\\n`;\r\n functionString += ` float Ko = 0.428571428571; // 1/2-K/2\\r\\n`;\r\n functionString += ` float K2 = 0.020408163265306; // 1/(7*7)\\r\\n`;\r\n functionString += ` float Kz = 0.166666666667; // 1/6\\r\\n`;\r\n functionString += ` float Kzo = 0.416666666667; // 1/2-1/6*2\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pi = mod(floor(P), 289.0);\\r\\n`;\r\n functionString += ` vec3 Pf = fract(P) - 0.5;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 Pfx = Pf.x + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfy = Pf.y + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += ` vec3 Pfz = Pf.z + vec3(1.0, 0.0, -1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p = permute(Pi.x + vec3(-1.0, 0.0, 1.0));\\r\\n`;\r\n functionString += ` vec3 p1 = permute(p + Pi.y - 1.0);\\r\\n`;\r\n functionString += ` vec3 p2 = permute(p + Pi.y);\\r\\n`;\r\n functionString += ` vec3 p3 = permute(p + Pi.y + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p11 = permute(p1 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p12 = permute(p1 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p13 = permute(p1 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p21 = permute(p2 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p22 = permute(p2 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p23 = permute(p2 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 p31 = permute(p3 + Pi.z - 1.0);\\r\\n`;\r\n functionString += ` vec3 p32 = permute(p3 + Pi.z);\\r\\n`;\r\n functionString += ` vec3 p33 = permute(p3 + Pi.z + 1.0);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox11 = fract(p11*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy11 = mod(floor(p11*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz11 = floor(p11*K2)*Kz - Kzo; // p11 < 289 guaranteed\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox12 = fract(p12*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy12 = mod(floor(p12*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz12 = floor(p12*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox13 = fract(p13*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy13 = mod(floor(p13*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz13 = floor(p13*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox21 = fract(p21*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy21 = mod(floor(p21*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz21 = floor(p21*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox22 = fract(p22*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy22 = mod(floor(p22*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz22 = floor(p22*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox23 = fract(p23*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy23 = mod(floor(p23*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz23 = floor(p23*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox31 = fract(p31*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy31 = mod(floor(p31*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz31 = floor(p31*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox32 = fract(p32*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy32 = mod(floor(p32*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz32 = floor(p32*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 ox33 = fract(p33*K) - Ko;\\r\\n`;\r\n functionString += ` vec3 oy33 = mod(floor(p33*K), 7.0)*K - Ko;\\r\\n`;\r\n functionString += ` vec3 oz33 = floor(p33*K2)*Kz - Kzo;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx11 = Pfx + jitter*ox11;\\r\\n`;\r\n functionString += ` vec3 dy11 = Pfy.x + jitter*oy11;\\r\\n`;\r\n functionString += ` vec3 dz11 = Pfz.x + jitter*oz11;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx12 = Pfx + jitter*ox12;\\r\\n`;\r\n functionString += ` vec3 dy12 = Pfy.x + jitter*oy12;\\r\\n`;\r\n functionString += ` vec3 dz12 = Pfz.y + jitter*oz12;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx13 = Pfx + jitter*ox13;\\r\\n`;\r\n functionString += ` vec3 dy13 = Pfy.x + jitter*oy13;\\r\\n`;\r\n functionString += ` vec3 dz13 = Pfz.z + jitter*oz13;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx21 = Pfx + jitter*ox21;\\r\\n`;\r\n functionString += ` vec3 dy21 = Pfy.y + jitter*oy21;\\r\\n`;\r\n functionString += ` vec3 dz21 = Pfz.x + jitter*oz21;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx22 = Pfx + jitter*ox22;\\r\\n`;\r\n functionString += ` vec3 dy22 = Pfy.y + jitter*oy22;\\r\\n`;\r\n functionString += ` vec3 dz22 = Pfz.y + jitter*oz22;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx23 = Pfx + jitter*ox23;\\r\\n`;\r\n functionString += ` vec3 dy23 = Pfy.y + jitter*oy23;\\r\\n`;\r\n functionString += ` vec3 dz23 = Pfz.z + jitter*oz23;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx31 = Pfx + jitter*ox31;\\r\\n`;\r\n functionString += ` vec3 dy31 = Pfy.z + jitter*oy31;\\r\\n`;\r\n functionString += ` vec3 dz31 = Pfz.x + jitter*oz31;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx32 = Pfx + jitter*ox32;\\r\\n`;\r\n functionString += ` vec3 dy32 = Pfy.z + jitter*oy32;\\r\\n`;\r\n functionString += ` vec3 dz32 = Pfz.y + jitter*oz32;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 dx33 = Pfx + jitter*ox33;\\r\\n`;\r\n functionString += ` vec3 dy33 = Pfy.z + jitter*oy33;\\r\\n`;\r\n functionString += ` vec3 dz33 = Pfz.z + jitter*oz33;\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d11 = dist(dx11, dy11, dz11, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d12 =dist(dx12, dy12, dz12, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d13 = dist(dx13, dy13, dz13, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d21 = dist(dx21, dy21, dz21, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d22 = dist(dx22, dy22, dz22, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d23 = dist(dx23, dy23, dz23, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d31 = dist(dx31, dy31, dz31, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d32 = dist(dx32, dy32, dz32, manhattanDistance);\\r\\n`;\r\n functionString += ` vec3 d33 = dist(dx33, dy33, dz33, manhattanDistance);\\r\\n`;\r\n functionString += `\\r\\n`;\r\n functionString += ` vec3 d1a = min(d11, d12);\\r\\n`;\r\n functionString += ` d12 = max(d11, d12);\\r\\n`;\r\n functionString += ` d11 = min(d1a, d13); // Smallest now not in d12 or d13\\r\\n`;\r\n functionString += ` d13 = max(d1a, d13);\\r\\n`;\r\n functionString += ` d12 = min(d12, d13); // 2nd smallest now not in d13\\r\\n`;\r\n functionString += ` vec3 d2a = min(d21, d22);\\r\\n`;\r\n functionString += ` d22 = max(d21, d22);\\r\\n`;\r\n functionString += ` d21 = min(d2a, d23); // Smallest now not in d22 or d23\\r\\n`;\r\n functionString += ` d23 = max(d2a, d23);\\r\\n`;\r\n functionString += ` d22 = min(d22, d23); // 2nd smallest now not in d23\\r\\n`;\r\n functionString += ` vec3 d3a = min(d31, d32);\\r\\n`;\r\n functionString += ` d32 = max(d31, d32);\\r\\n`;\r\n functionString += ` d31 = min(d3a, d33); // Smallest now not in d32 or d33\\r\\n`;\r\n functionString += ` d33 = max(d3a, d33);\\r\\n`;\r\n functionString += ` d32 = min(d32, d33); // 2nd smallest now not in d33\\r\\n`;\r\n functionString += ` vec3 da = min(d11, d21);\\r\\n`;\r\n functionString += ` d21 = max(d11, d21);\\r\\n`;\r\n functionString += ` d11 = min(da, d31); // Smallest now in d11\\r\\n`;\r\n functionString += ` d31 = max(da, d31); // 2nd smallest now not in d31\\r\\n`;\r\n functionString += ` d11.xy = (d11.x < d11.y) ? d11.xy : d11.yx;\\r\\n`;\r\n functionString += ` d11.xz = (d11.x < d11.z) ? d11.xz : d11.zx; // d11.x now smallest\\r\\n`;\r\n functionString += ` d12 = min(d12, d21); // 2nd smallest now not in d21\\r\\n`;\r\n functionString += ` d12 = min(d12, d22); // nor in d22\\r\\n`;\r\n functionString += ` d12 = min(d12, d31); // nor in d31\\r\\n`;\r\n functionString += ` d12 = min(d12, d32); // nor in d32\\r\\n`;\r\n functionString += ` d11.yz = min(d11.yz,d12.xy); // nor in d12.yz\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d12.z); // Only two more to go\\r\\n`;\r\n functionString += ` d11.y = min(d11.y,d11.z); // Done! (Phew!)\\r\\n`;\r\n functionString += ` return sqrt(d11.xy); // F1, F2\\r\\n`;\r\n functionString += `}\\r\\n\\r\\n`;\r\n\r\n state._emitFunction('worley3D', functionString, '// Worley3D');\r\n\r\n const tempVariable = state._getFreeVariableName(\"worleyTemp\");\r\n\r\n state.compilationString += `vec2 ${tempVariable} = worley(${this.seed.associatedVariableName}, ${this.jitter.associatedVariableName}, ${this.manhattanDistance});\\r\\n`;\r\n\r\n if (this.output.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.output, state) + ` = ${tempVariable};\\r\\n`;\r\n }\r\n\r\n if (this.x.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.x, state) + ` = ${tempVariable}.x;\\r\\n`;\r\n }\r\n\r\n if (this.y.hasEndpoints) {\r\n state.compilationString += this._declareOutput(this.y, state) + ` = ${tempVariable}.y;\\r\\n`;\r\n }\r\n return this;\r\n }\r\n /**\r\n * Exposes the properties to the UI?\r\n */\r\n protected _dumpPropertiesCode() {\r\n var codeString = super._dumpPropertiesCode() + `${this._codeVariableName}.manhattanDistance = ${this.manhattanDistance};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n /**\r\n * Exposes the properties to the Serialize?\r\n */\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n serializationObject.manhattanDistance = this.manhattanDistance;\r\n\r\n return serializationObject;\r\n }\r\n /**\r\n * Exposes the properties to the deserialize?\r\n */\r\n public _deserialize(serializationObject: any, scene: Scene, rootUrl: string) {\r\n super._deserialize(serializationObject, scene, rootUrl);\r\n\r\n this.manhattanDistance = serializationObject.manhattanDistance;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.WorleyNoise3DBlock\", WorleyNoise3DBlock);"]}
@@ -21,5 +21,7 @@ export declare enum NodeMaterialSystemValues {
21
21
  /** Delta time */
22
22
  DeltaTime = 9,
23
23
  /** Camera parameters */
24
- CameraParameters = 10
24
+ CameraParameters = 10,
25
+ /** Material alpha */
26
+ MaterialAlpha = 11
25
27
  }
@@ -23,5 +23,7 @@ export var NodeMaterialSystemValues;
23
23
  NodeMaterialSystemValues[NodeMaterialSystemValues["DeltaTime"] = 9] = "DeltaTime";
24
24
  /** Camera parameters */
25
25
  NodeMaterialSystemValues[NodeMaterialSystemValues["CameraParameters"] = 10] = "CameraParameters";
26
+ /** Material alpha */
27
+ NodeMaterialSystemValues[NodeMaterialSystemValues["MaterialAlpha"] = 11] = "MaterialAlpha";
26
28
  })(NodeMaterialSystemValues || (NodeMaterialSystemValues = {}));
27
29
  //# sourceMappingURL=nodeMaterialSystemValues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodeMaterialSystemValues.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Enums/nodeMaterialSystemValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,wBAqBX;AArBD,WAAY,wBAAwB;IAChC,YAAY;IACZ,yEAAS,CAAA;IACT,WAAW;IACX,uEAAQ,CAAA;IACR,iBAAiB;IACjB,mFAAc,CAAA;IACd,qBAAqB;IACrB,2FAAkB,CAAA;IAClB,gBAAgB;IAChB,iFAAa,CAAA;IACb,0BAA0B;IAC1B,qGAAuB,CAAA;IACvB,qBAAqB;IACrB,2FAAkB,CAAA;IAClB,gBAAgB;IAChB,+EAAY,CAAA;IACZ,iBAAiB;IACjB,iFAAa,CAAA;IACb,wBAAwB;IACxB,gGAAqB,CAAA;AACzB,CAAC,EArBW,wBAAwB,KAAxB,wBAAwB,QAqBnC","sourcesContent":["/**\r\n * Enum used to define system values e.g. values automatically provided by the system\r\n */\r\nexport enum NodeMaterialSystemValues {\r\n /** World */\r\n World = 1,\r\n /** View */\r\n View = 2,\r\n /** Projection */\r\n Projection = 3,\r\n /** ViewProjection */\r\n ViewProjection = 4,\r\n /** WorldView */\r\n WorldView = 5,\r\n /** WorldViewProjection */\r\n WorldViewProjection = 6,\r\n /** CameraPosition */\r\n CameraPosition = 7,\r\n /** Fog Color */\r\n FogColor = 8,\r\n /** Delta time */\r\n DeltaTime = 9,\r\n /** Camera parameters */\r\n CameraParameters = 10,\r\n}"]}
1
+ {"version":3,"file":"nodeMaterialSystemValues.js","sourceRoot":"","sources":["../../../../../sourceES6/core/Materials/Node/Enums/nodeMaterialSystemValues.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,wBAuBX;AAvBD,WAAY,wBAAwB;IAChC,YAAY;IACZ,yEAAS,CAAA;IACT,WAAW;IACX,uEAAQ,CAAA;IACR,iBAAiB;IACjB,mFAAc,CAAA;IACd,qBAAqB;IACrB,2FAAkB,CAAA;IAClB,gBAAgB;IAChB,iFAAa,CAAA;IACb,0BAA0B;IAC1B,qGAAuB,CAAA;IACvB,qBAAqB;IACrB,2FAAkB,CAAA;IAClB,gBAAgB;IAChB,+EAAY,CAAA;IACZ,iBAAiB;IACjB,iFAAa,CAAA;IACb,wBAAwB;IACxB,gGAAqB,CAAA;IACrB,qBAAqB;IACrB,0FAAkB,CAAA;AACtB,CAAC,EAvBW,wBAAwB,KAAxB,wBAAwB,QAuBnC","sourcesContent":["/**\r\n * Enum used to define system values e.g. values automatically provided by the system\r\n */\r\nexport enum NodeMaterialSystemValues {\r\n /** World */\r\n World = 1,\r\n /** View */\r\n View = 2,\r\n /** Projection */\r\n Projection = 3,\r\n /** ViewProjection */\r\n ViewProjection = 4,\r\n /** WorldView */\r\n WorldView = 5,\r\n /** WorldViewProjection */\r\n WorldViewProjection = 6,\r\n /** CameraPosition */\r\n CameraPosition = 7,\r\n /** Fog Color */\r\n FogColor = 8,\r\n /** Delta time */\r\n DeltaTime = 9,\r\n /** Camera parameters */\r\n CameraParameters = 10,\r\n /** Material alpha */\r\n MaterialAlpha = 11,\r\n}"]}
@@ -246,6 +246,10 @@ export declare class NodeMaterial extends PushMaterial {
246
246
  private _removeVertexOutputNode;
247
247
  private _addFragmentOutputNode;
248
248
  private _removeFragmentOutputNode;
249
+ /**
250
+ * Gets or sets a boolean indicating that alpha blending must be enabled no matter what alpha value or alpha channel of the FragmentBlock are
251
+ */
252
+ forceAlphaBlending: boolean;
249
253
  /**
250
254
  * Specifies if the material will require alpha blending
251
255
  * @returns a boolean specifying if alpha blending is needed
@@ -37,6 +37,7 @@ import { ProceduralTexture } from '../Textures/Procedurals/proceduralTexture.js'
37
37
  import { AnimatedInputBlockTypes } from './Blocks/Input/animatedInputBlockTypes.js';
38
38
  import { TrigonometryBlock, TrigonometryBlockOperations } from './Blocks/trigonometryBlock.js';
39
39
  import { NodeMaterialSystemValues } from './Enums/nodeMaterialSystemValues.js';
40
+ import { EngineStore } from '../../Engines/engineStore.js';
40
41
  var onCreatedEffectParameters = { effect: null, subMesh: null };
41
42
  /** @hidden */
42
43
  var NodeMaterialDefines = /** @class */ (function (_super) {
@@ -109,7 +110,7 @@ var NodeMaterial = /** @class */ (function (_super) {
109
110
  */
110
111
  function NodeMaterial(name, scene, options) {
111
112
  if (options === void 0) { options = {}; }
112
- var _this = _super.call(this, name, scene || Engine.LastCreatedScene) || this;
113
+ var _this = _super.call(this, name, scene || EngineStore.LastCreatedScene) || this;
113
114
  _this._buildId = NodeMaterial._BuildIdGenerator++;
114
115
  _this._buildWasSuccessful = false;
115
116
  _this._cachedWorldViewMatrix = new Matrix();
@@ -151,6 +152,10 @@ var NodeMaterial = /** @class */ (function (_super) {
151
152
  * @hidden
152
153
  */
153
154
  _this._mode = NodeMaterialModes.Material;
155
+ /**
156
+ * Gets or sets a boolean indicating that alpha blending must be enabled no matter what alpha value or alpha channel of the FragmentBlock are
157
+ */
158
+ _this.forceAlphaBlending = false;
154
159
  _this._options = __assign({ emitComments: false }, options);
155
160
  // Setup the default processing configuration to the scene.
156
161
  _this._attachImageProcessingConfiguration(null);
@@ -420,7 +425,7 @@ var NodeMaterial = /** @class */ (function (_super) {
420
425
  if (this.ignoreAlpha) {
421
426
  return false;
422
427
  }
423
- return (this.alpha < 1.0) || (this._sharedData && this._sharedData.hints.needAlphaBlending);
428
+ return this.forceAlphaBlending || (this.alpha < 1.0) || (this._sharedData && this._sharedData.hints.needAlphaBlending);
424
429
  };
425
430
  /**
426
431
  * Specifies if this material should be rendered in alpha test mode
@@ -442,7 +447,7 @@ var NodeMaterial = /** @class */ (function (_super) {
442
447
  for (var _i = 0, _a = this.attachedBlocks; _i < _a.length; _i++) {
443
448
  var other = _a[_i];
444
449
  if (other.getClassName() === className) {
445
- throw "Cannot have multiple blocks of type " + className + " in the same NodeMaterial";
450
+ throw "Cannot have multiple blocks of type ".concat(className, " in the same NodeMaterial");
446
451
  }
447
452
  }
448
453
  }
@@ -623,7 +628,7 @@ var NodeMaterial = /** @class */ (function (_super) {
623
628
  var uvChanged = false;
624
629
  for (var i = 1; i <= 6; ++i) {
625
630
  var oldUV = defines["UV" + i];
626
- defines["UV" + i] = mesh.isVerticesDataPresent("uv" + (i === 1 ? "" : i));
631
+ defines["UV" + i] = mesh.isVerticesDataPresent("uv".concat(i === 1 ? "" : i));
627
632
  uvChanged = uvChanged || defines["UV" + i] !== oldUV;
628
633
  }
629
634
  if (oldNormal !== defines["NORMAL"] || oldTangent !== defines["TANGENT"] || uvChanged) {
@@ -821,7 +826,7 @@ var NodeMaterial = /** @class */ (function (_super) {
821
826
  // Connection points
822
827
  for (var _d = 0, _e = this._sharedData.inputBlocks; _d < _e.length; _d++) {
823
828
  var inputBlock = _e[_d];
824
- inputBlock._transmit(effect, this.getScene());
829
+ inputBlock._transmit(effect, this.getScene(), this);
825
830
  }
826
831
  };
827
832
  /**
@@ -991,7 +996,7 @@ var NodeMaterial = /** @class */ (function (_super) {
991
996
  * Get a string representing the shaders built by the current node graph
992
997
  */
993
998
  get: function () {
994
- return "// Vertex shader\r\n" + this._vertexCompilationState.compilationString + "\r\n\r\n// Fragment shader\r\n" + this._fragmentCompilationState.compilationString;
999
+ return "// Vertex shader\r\n".concat(this._vertexCompilationState.compilationString, "\r\n\r\n// Fragment shader\r\n").concat(this._fragmentCompilationState.compilationString);
995
1000
  },
996
1001
  enumerable: false,
997
1002
  configurable: true
@@ -1049,7 +1054,7 @@ var NodeMaterial = /** @class */ (function (_super) {
1049
1054
  // Connection points
1050
1055
  for (var _d = 0, _e = sharedData.inputBlocks; _d < _e.length; _d++) {
1051
1056
  var inputBlock = _e[_d];
1052
- inputBlock._transmit(effect, scene);
1057
+ inputBlock._transmit(effect, scene, this);
1053
1058
  }
1054
1059
  }
1055
1060
  }
@@ -1353,7 +1358,7 @@ var NodeMaterial = /** @class */ (function (_super) {
1353
1358
  this._gatherBlocks(outputNode, fragmentBlocks);
1354
1359
  }
1355
1360
  // Generate vertex shader
1356
- var codeString = "var nodeMaterial = new BABYLON.NodeMaterial(\"" + (this.name || "node material") + "\");\r\n";
1361
+ var codeString = "var nodeMaterial = new BABYLON.NodeMaterial(\"".concat(this.name || "node material", "\");\r\n");
1357
1362
  for (var _d = 0, vertexBlocks_1 = vertexBlocks; _d < vertexBlocks_1.length; _d++) {
1358
1363
  var node = vertexBlocks_1[_d];
1359
1364
  if (node.isInput && alreadyDumped.indexOf(node) === -1) {
@@ -1382,11 +1387,11 @@ var NodeMaterial = /** @class */ (function (_super) {
1382
1387
  codeString += "\r\n// Output nodes\r\n";
1383
1388
  for (var _k = 0, _l = this._vertexOutputNodes; _k < _l.length; _k++) {
1384
1389
  var node = _l[_k];
1385
- codeString += "nodeMaterial.addOutputNode(" + node._codeVariableName + ");\r\n";
1390
+ codeString += "nodeMaterial.addOutputNode(".concat(node._codeVariableName, ");\r\n");
1386
1391
  }
1387
1392
  for (var _m = 0, _o = this._fragmentOutputNodes; _m < _o.length; _m++) {
1388
1393
  var node = _o[_m];
1389
- codeString += "nodeMaterial.addOutputNode(" + node._codeVariableName + ");\r\n";
1394
+ codeString += "nodeMaterial.addOutputNode(".concat(node._codeVariableName, ");\r\n");
1390
1395
  }
1391
1396
  codeString += "nodeMaterial.build();\r\n";
1392
1397
  return codeString;
@@ -1532,6 +1537,9 @@ var NodeMaterial = /** @class */ (function (_super) {
1532
1537
  this.editorData.map = blockMap;
1533
1538
  }
1534
1539
  this.comment = source.comment;
1540
+ if (source.forceAlphaBlending !== undefined) {
1541
+ this.forceAlphaBlending = source.forceAlphaBlending;
1542
+ }
1535
1543
  if (!merge) {
1536
1544
  this._mode = (_a = source.mode) !== null && _a !== void 0 ? _a : NodeMaterialModes.Material;
1537
1545
  }
@@ -1641,7 +1649,7 @@ var NodeMaterial = /** @class */ (function (_super) {
1641
1649
  };
1642
1650
  NodeMaterial._BuildIdGenerator = 0;
1643
1651
  /** Define the Url to load node editor script */
1644
- NodeMaterial.EditorURL = "https://unpkg.com/babylonjs-node-editor@" + Engine.Version + "/babylon.nodeEditor.js";
1652
+ NodeMaterial.EditorURL = "https://unpkg.com/babylonjs-node-editor@".concat(Engine.Version, "/babylon.nodeEditor.js");
1645
1653
  /** Define the Url to load snippets */
1646
1654
  NodeMaterial.SnippetUrl = "https://snippet.babylonjs.com";
1647
1655
  /** Gets or sets a boolean indicating that node materials should not deserialize textures from json / snippet content */
@@ -1658,6 +1666,9 @@ var NodeMaterial = /** @class */ (function (_super) {
1658
1666
  __decorate([
1659
1667
  serialize("comment")
1660
1668
  ], NodeMaterial.prototype, "comment", void 0);
1669
+ __decorate([
1670
+ serialize()
1671
+ ], NodeMaterial.prototype, "forceAlphaBlending", void 0);
1661
1672
  return NodeMaterial;
1662
1673
  }(PushMaterial));
1663
1674
  export { NodeMaterial };