@babylonjs/core 5.0.0-beta.4 → 5.0.0-beta.5

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 (431) hide show
  1. package/Audio/sound.js +3 -1
  2. package/Audio/sound.js.map +1 -1
  3. package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
  4. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  5. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  6. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  7. package/Bones/bone.d.ts +2 -1
  8. package/Bones/bone.js +28 -18
  9. package/Bones/bone.js.map +1 -1
  10. package/Bones/skeleton.js +3 -3
  11. package/Bones/skeleton.js.map +1 -1
  12. package/Buffers/buffer.js +2 -2
  13. package/Buffers/buffer.js.map +1 -1
  14. package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
  15. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  16. package/Cameras/camera.js +1 -1
  17. package/Cameras/camera.js.map +1 -1
  18. package/Compute/computeEffect.js +2 -2
  19. package/Compute/computeEffect.js.map +1 -1
  20. package/Debug/debugLayer.js +1 -1
  21. package/Debug/debugLayer.js.map +1 -1
  22. package/DeviceInput/Helpers/eventFactory.js +1 -1
  23. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  24. package/DeviceInput/InputDevices/deviceEnums.d.ts +52 -1
  25. package/DeviceInput/InputDevices/deviceEnums.js +52 -0
  26. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  27. package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
  28. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  29. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +1 -0
  30. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -1
  31. package/DeviceInput/InputDevices/webDeviceInputSystem.js +22 -18
  32. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
  33. package/Engines/Extensions/engine.cubeTexture.js +1 -1
  34. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  35. package/Engines/Extensions/engine.multiview.d.ts +5 -0
  36. package/Engines/Extensions/engine.multiview.js +4 -1
  37. package/Engines/Extensions/engine.multiview.js.map +1 -1
  38. package/Engines/Native/nativeInterfaces.d.ts +1 -0
  39. package/Engines/Native/nativeInterfaces.js.map +1 -1
  40. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  41. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  42. package/Engines/Processors/shaderCodeInliner.js +13 -13
  43. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  44. package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
  45. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  46. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
  47. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  48. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  49. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  50. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
  51. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  52. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
  53. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  54. package/Engines/WebGPU/webgpuTextureHelper.js +4 -4
  55. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  56. package/Engines/engine.d.ts +1 -1
  57. package/Engines/engine.js +1 -1
  58. package/Engines/engine.js.map +1 -1
  59. package/Engines/nativeEngine.d.ts +1 -0
  60. package/Engines/nativeEngine.js +36 -11
  61. package/Engines/nativeEngine.js.map +1 -1
  62. package/Engines/nullEngine.js +1 -1
  63. package/Engines/nullEngine.js.map +1 -1
  64. package/Engines/thinEngine.js +8 -8
  65. package/Engines/thinEngine.js.map +1 -1
  66. package/Engines/webgpuEngine.js +4 -4
  67. package/Engines/webgpuEngine.js.map +1 -1
  68. package/Gamepads/Controllers/daydreamController.js +1 -1
  69. package/Gamepads/Controllers/daydreamController.js.map +1 -1
  70. package/Gamepads/gamepadManager.js +1 -1
  71. package/Gamepads/gamepadManager.js.map +1 -1
  72. package/Gizmos/gizmoManager.d.ts +2 -0
  73. package/Gizmos/gizmoManager.js +28 -24
  74. package/Gizmos/gizmoManager.js.map +1 -1
  75. package/Instrumentation/sceneInstrumentation.js +2 -2
  76. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  77. package/Layers/layer.d.ts +2 -2
  78. package/Layers/layer.js.map +1 -1
  79. package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
  80. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  81. package/Lights/Shadows/shadowGenerator.js +2 -2
  82. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  83. package/Loading/Plugins/babylonFileLoader.js +78 -27
  84. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  85. package/Loading/loadingScreen.js +8 -8
  86. package/Loading/loadingScreen.js.map +1 -1
  87. package/Loading/sceneLoader.js +3 -3
  88. package/Loading/sceneLoader.js.map +1 -1
  89. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
  90. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
  91. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
  92. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
  93. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  94. package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
  95. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  96. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +11 -11
  97. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  98. package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
  99. package/Materials/Node/Blocks/Dual/index.js +1 -0
  100. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  101. package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
  102. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  103. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +26 -26
  104. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  105. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  106. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  107. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
  108. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  109. package/Materials/Node/Blocks/Dual/textureBlock.js +30 -30
  110. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  111. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  112. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  113. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  114. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  115. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  116. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  117. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
  118. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  119. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
  120. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  121. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
  122. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  123. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  124. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  125. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
  126. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  127. package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
  128. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  129. package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
  130. package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
  131. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  132. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
  133. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  134. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
  135. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  136. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
  137. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  138. package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
  139. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  140. package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
  141. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  142. package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
  143. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  144. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  145. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  146. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
  147. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  148. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
  149. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  150. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  151. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  152. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  153. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  154. package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
  155. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  156. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
  157. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  158. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
  159. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  160. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
  161. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  162. package/Materials/Node/Blocks/addBlock.js +1 -1
  163. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  164. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  165. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  166. package/Materials/Node/Blocks/clampBlock.js +3 -3
  167. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  168. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  169. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  170. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  171. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  172. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  173. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  174. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  175. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  176. package/Materials/Node/Blocks/crossBlock.js +1 -1
  177. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  178. package/Materials/Node/Blocks/customBlock.js +1 -1
  179. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  180. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  181. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  182. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  183. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  184. package/Materials/Node/Blocks/divideBlock.js +1 -1
  185. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  186. package/Materials/Node/Blocks/dotBlock.js +1 -1
  187. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  188. package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
  189. package/Materials/Node/Blocks/elbowBlock.js +60 -0
  190. package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
  191. package/Materials/Node/Blocks/fresnelBlock.js +2 -2
  192. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  193. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  194. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  195. package/Materials/Node/Blocks/index.d.ts +1 -0
  196. package/Materials/Node/Blocks/index.js +1 -0
  197. package/Materials/Node/Blocks/index.js.map +1 -1
  198. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  199. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  200. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  201. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  202. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  203. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  204. package/Materials/Node/Blocks/maxBlock.js +1 -1
  205. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/minBlock.js +1 -1
  207. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/modBlock.js +1 -1
  209. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  211. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  213. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/negateBlock.js +1 -1
  215. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  217. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  218. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  219. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  220. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  221. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  223. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  224. package/Materials/Node/Blocks/powBlock.js +1 -1
  225. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  226. package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
  227. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  228. package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
  229. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  230. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  231. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  232. package/Materials/Node/Blocks/refractBlock.js +1 -1
  233. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  234. package/Materials/Node/Blocks/remapBlock.js +3 -3
  235. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  236. package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
  237. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  238. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  239. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  240. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  241. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  242. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  243. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  245. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/stepBlock.js +1 -1
  247. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  249. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  250. package/Materials/Node/Blocks/transformBlock.js +13 -13
  251. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  252. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  253. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  254. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  255. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  256. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  257. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  258. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  259. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  260. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  261. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/waveBlock.js +3 -3
  263. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
  265. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  266. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  267. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  268. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  269. package/Materials/Node/nodeMaterial.d.ts +4 -0
  270. package/Materials/Node/nodeMaterial.js +20 -10
  271. package/Materials/Node/nodeMaterial.js.map +1 -1
  272. package/Materials/Node/nodeMaterialBlock.js +12 -12
  273. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  274. package/Materials/Node/nodeMaterialBuildState.js +24 -24
  275. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  276. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
  277. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  278. package/Materials/PBR/pbrBaseMaterial.js +2 -2
  279. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  280. package/Materials/PBR/pbrMaterial.js +1 -2
  281. package/Materials/PBR/pbrMaterial.js.map +1 -1
  282. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  283. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  284. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -0
  285. package/Materials/Textures/MultiviewRenderTarget.js +10 -2
  286. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  287. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  288. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  289. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  290. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  291. package/Materials/Textures/mirrorTexture.js +2 -2
  292. package/Materials/Textures/mirrorTexture.js.map +1 -1
  293. package/Materials/Textures/renderTargetTexture.js +2 -2
  294. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  295. package/Materials/Textures/videoTexture.js +1 -0
  296. package/Materials/Textures/videoTexture.js.map +1 -1
  297. package/Materials/effect.js +3 -3
  298. package/Materials/effect.js.map +1 -1
  299. package/Materials/material.d.ts +2 -0
  300. package/Materials/material.js +4 -1
  301. package/Materials/material.js.map +1 -1
  302. package/Materials/materialHelper.js +1 -1
  303. package/Materials/materialHelper.js.map +1 -1
  304. package/Materials/materialPluginManager.js +3 -3
  305. package/Materials/materialPluginManager.js.map +1 -1
  306. package/Materials/multiMaterial.d.ts +2 -0
  307. package/Materials/multiMaterial.js +12 -10
  308. package/Materials/multiMaterial.js.map +1 -1
  309. package/Materials/shaderMaterial.js +1 -1
  310. package/Materials/shaderMaterial.js.map +1 -1
  311. package/Materials/shadowDepthWrapper.js +1 -1
  312. package/Materials/shadowDepthWrapper.js.map +1 -1
  313. package/Materials/standardMaterial.d.ts +0 -5
  314. package/Materials/standardMaterial.js +1 -10
  315. package/Materials/standardMaterial.js.map +1 -1
  316. package/Maths/math.size.js +1 -1
  317. package/Maths/math.size.js.map +1 -1
  318. package/Maths/math.vector.js +4 -4
  319. package/Maths/math.vector.js.map +1 -1
  320. package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
  321. package/Meshes/Builders/cylinderBuilder.js +1 -1
  322. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  323. package/Meshes/Builders/linesBuilder.js.map +1 -1
  324. package/Meshes/Compression/dracoCompression.d.ts +3 -0
  325. package/Meshes/Compression/dracoCompression.js +23 -7
  326. package/Meshes/Compression/dracoCompression.js.map +1 -1
  327. package/Meshes/abstractMesh.d.ts +2 -0
  328. package/Meshes/abstractMesh.js +2 -0
  329. package/Meshes/abstractMesh.js.map +1 -1
  330. package/Meshes/mesh.js +8 -6
  331. package/Meshes/mesh.js.map +1 -1
  332. package/Meshes/mesh.lts.d.ts +1 -1
  333. package/Meshes/mesh.lts.js.map +1 -1
  334. package/Meshes/mesh.vertexData.d.ts +1 -1
  335. package/Meshes/mesh.vertexData.js +2 -2
  336. package/Meshes/mesh.vertexData.js.map +1 -1
  337. package/Misc/PerformanceViewer/performanceViewerCollector.js +6 -6
  338. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  339. package/Misc/assetsManager.d.ts +1 -0
  340. package/Misc/assetsManager.js +13 -0
  341. package/Misc/assetsManager.js.map +1 -1
  342. package/Misc/basis.js +1 -1
  343. package/Misc/basis.js.map +1 -1
  344. package/Misc/devTools.js +1 -1
  345. package/Misc/devTools.js.map +1 -1
  346. package/Misc/environmentTextureTools.js +2 -2
  347. package/Misc/environmentTextureTools.js.map +1 -1
  348. package/Misc/fileTools.js +3 -3
  349. package/Misc/fileTools.js.map +1 -1
  350. package/Misc/khronosTextureContainer2.js +4 -3
  351. package/Misc/khronosTextureContainer2.js.map +1 -1
  352. package/Misc/reflector.js +6 -6
  353. package/Misc/reflector.js.map +1 -1
  354. package/Misc/tools.js +15 -13
  355. package/Misc/tools.js.map +1 -1
  356. package/Misc/uniqueIdGenerator.js +1 -1
  357. package/Misc/uniqueIdGenerator.js.map +1 -1
  358. package/Offline/database.js +1 -1
  359. package/Offline/database.js.map +1 -1
  360. package/Particles/baseParticleSystem.d.ts +4 -1
  361. package/Particles/baseParticleSystem.js +20 -5
  362. package/Particles/baseParticleSystem.js.map +1 -1
  363. package/Particles/particleHelper.js +2 -2
  364. package/Particles/particleHelper.js.map +1 -1
  365. package/Physics/Plugins/ammoJSPlugin.js +4 -4
  366. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  367. package/Physics/physicsImpostor.d.ts +2 -2
  368. package/Physics/physicsImpostor.js.map +1 -1
  369. package/PostProcesses/blurPostProcess.js +5 -5
  370. package/PostProcesses/blurPostProcess.js.map +1 -1
  371. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  372. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  373. package/PostProcesses/postProcess.js +1 -1
  374. package/PostProcesses/postProcess.js.map +1 -1
  375. package/PostProcesses/postProcessManager.js +2 -2
  376. package/PostProcesses/postProcessManager.js.map +1 -1
  377. package/Probes/reflectionProbe.js +2 -2
  378. package/Probes/reflectionProbe.js.map +1 -1
  379. package/Rendering/depthPeelingRenderer.js +3 -3
  380. package/Rendering/depthPeelingRenderer.js.map +1 -1
  381. package/Rendering/geometryBufferRenderer.js +8 -8
  382. package/Rendering/geometryBufferRenderer.js.map +1 -1
  383. package/Rendering/outlineRenderer.js +1 -1
  384. package/Rendering/outlineRenderer.js.map +1 -1
  385. package/Rendering/utilityLayerRenderer.js +4 -0
  386. package/Rendering/utilityLayerRenderer.js.map +1 -1
  387. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  388. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  389. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  390. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  391. package/Sprites/spriteManager.js +5 -6
  392. package/Sprites/spriteManager.js.map +1 -1
  393. package/Sprites/spriteMap.js +2 -2
  394. package/Sprites/spriteMap.js.map +1 -1
  395. package/Sprites/spriteRenderer.js +1 -1
  396. package/Sprites/spriteRenderer.js.map +1 -1
  397. package/XR/features/WebXRDOMOverlay.js +1 -1
  398. package/XR/features/WebXRDOMOverlay.js.map +1 -1
  399. package/XR/features/WebXRHandTracking.js +27 -27
  400. package/XR/features/WebXRHandTracking.js.map +1 -1
  401. package/XR/features/WebXRImageTracking.js +2 -2
  402. package/XR/features/WebXRImageTracking.js.map +1 -1
  403. package/XR/features/WebXRLayers.d.ts +28 -5
  404. package/XR/features/WebXRLayers.js +54 -20
  405. package/XR/features/WebXRLayers.js.map +1 -1
  406. package/XR/features/WebXRNearInteraction.d.ts +35 -3
  407. package/XR/features/WebXRNearInteraction.js +201 -40
  408. package/XR/features/WebXRNearInteraction.js.map +1 -1
  409. package/XR/motionController/webXRAbstractMotionController.js +1 -1
  410. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  411. package/XR/motionController/webXRMotionControllerManager.js +2 -2
  412. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  413. package/XR/motionController/webXRProfiledMotionController.js +1 -1
  414. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  415. package/XR/webXRCamera.js +17 -4
  416. package/XR/webXRCamera.js.map +1 -1
  417. package/XR/webXREnterExitUI.js +2 -2
  418. package/XR/webXREnterExitUI.js.map +1 -1
  419. package/XR/webXRFeaturesManager.js +6 -6
  420. package/XR/webXRFeaturesManager.js.map +1 -1
  421. package/XR/webXRInputSource.js +3 -3
  422. package/XR/webXRInputSource.js.map +1 -1
  423. package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
  424. package/XR/webXRRenderTargetTextureProvider.js +37 -18
  425. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  426. package/node.d.ts +1 -1
  427. package/node.js.map +1 -1
  428. package/package.json +7 -1
  429. package/scene.d.ts +3 -1
  430. package/scene.js +28 -4
  431. package/scene.js.map +1 -1
@@ -0,0 +1,117 @@
1
+ import { __extends } from "tslib";
2
+ import { NodeMaterialBlock } from "../../nodeMaterialBlock.js";
3
+ import { NodeMaterialBlockConnectionPointTypes } from "../../Enums/nodeMaterialBlockConnectionPointTypes.js";
4
+ import { NodeMaterialBlockTargets } from "../../Enums/nodeMaterialBlockTargets.js";
5
+ import { RegisterClass } from "../../../../Misc/typeStore.js";
6
+ import { MaterialHelper } from "../../../materialHelper.js";
7
+ /**
8
+ * Block used to implement clip planes
9
+ */
10
+ var ClipPlanesBlock = /** @class */ (function (_super) {
11
+ __extends(ClipPlanesBlock, _super);
12
+ /**
13
+ * Create a new ClipPlanesBlock
14
+ * @param name defines the block name
15
+ */
16
+ function ClipPlanesBlock(name) {
17
+ var _this = _super.call(this, name, NodeMaterialBlockTargets.VertexAndFragment, true) || this;
18
+ _this.registerInput("worldPosition", NodeMaterialBlockConnectionPointTypes.Vector4, false);
19
+ return _this;
20
+ }
21
+ /**
22
+ * Gets the current class name
23
+ * @returns the class name
24
+ */
25
+ ClipPlanesBlock.prototype.getClassName = function () {
26
+ return "ClipPlanesBlock";
27
+ };
28
+ /**
29
+ * Initialize the block and prepare the context for build
30
+ * @param state defines the state that will be used for the build
31
+ */
32
+ ClipPlanesBlock.prototype.initialize = function (state) {
33
+ state._excludeVariableName("vClipPlane");
34
+ state._excludeVariableName("fClipDistance");
35
+ state._excludeVariableName("vClipPlane2");
36
+ state._excludeVariableName("fClipDistance2");
37
+ state._excludeVariableName("vClipPlane3");
38
+ state._excludeVariableName("fClipDistance3");
39
+ state._excludeVariableName("vClipPlane4");
40
+ state._excludeVariableName("fClipDistance4");
41
+ state._excludeVariableName("vClipPlane5");
42
+ state._excludeVariableName("fClipDistance5");
43
+ state._excludeVariableName("vClipPlane6");
44
+ state._excludeVariableName("fClipDistance6");
45
+ };
46
+ Object.defineProperty(ClipPlanesBlock.prototype, "worldPosition", {
47
+ /**
48
+ * Gets the worldPosition input component
49
+ */
50
+ get: function () {
51
+ return this._inputs[0];
52
+ },
53
+ enumerable: false,
54
+ configurable: true
55
+ });
56
+ Object.defineProperty(ClipPlanesBlock.prototype, "target", {
57
+ get: function () {
58
+ return NodeMaterialBlockTargets.VertexAndFragment;
59
+ },
60
+ set: function (value) { },
61
+ enumerable: false,
62
+ configurable: true
63
+ });
64
+ ClipPlanesBlock.prototype.prepareDefines = function (mesh, nodeMaterial, defines) {
65
+ var scene = mesh.getScene();
66
+ var useClipPlane1 = scene.clipPlane !== undefined && scene.clipPlane !== null;
67
+ var useClipPlane2 = scene.clipPlane2 !== undefined && scene.clipPlane2 !== null;
68
+ var useClipPlane3 = scene.clipPlane3 !== undefined && scene.clipPlane3 !== null;
69
+ var useClipPlane4 = scene.clipPlane4 !== undefined && scene.clipPlane4 !== null;
70
+ var useClipPlane5 = scene.clipPlane5 !== undefined && scene.clipPlane5 !== null;
71
+ var useClipPlane6 = scene.clipPlane6 !== undefined && scene.clipPlane6 !== null;
72
+ defines.setValue("CLIPPLANE", useClipPlane1, true);
73
+ defines.setValue("CLIPPLANE2", useClipPlane2, true);
74
+ defines.setValue("CLIPPLANE3", useClipPlane3, true);
75
+ defines.setValue("CLIPPLANE4", useClipPlane4, true);
76
+ defines.setValue("CLIPPLANE5", useClipPlane5, true);
77
+ defines.setValue("CLIPPLANE6", useClipPlane6, true);
78
+ };
79
+ ClipPlanesBlock.prototype.bind = function (effect, nodeMaterial, mesh) {
80
+ if (!mesh) {
81
+ return;
82
+ }
83
+ var scene = mesh.getScene();
84
+ MaterialHelper.BindClipPlane(effect, scene);
85
+ };
86
+ ClipPlanesBlock.prototype._buildBlock = function (state) {
87
+ _super.prototype._buildBlock.call(this, state);
88
+ var comments = "//".concat(this.name);
89
+ if (state.target !== NodeMaterialBlockTargets.Fragment) {
90
+ // Vertex
91
+ var worldPos = this.worldPosition;
92
+ state._emitFunctionFromInclude("clipPlaneVertexDeclaration", comments, {
93
+ replaceStrings: [{ search: /uniform vec4 vClipPlane\d*;/g, replace: "" }],
94
+ });
95
+ state.compilationString += state._emitCodeFromInclude("clipPlaneVertex", comments, {
96
+ replaceStrings: [{ search: /worldPos/g, replace: worldPos.associatedVariableName }],
97
+ });
98
+ state._emitUniformFromString("vClipPlane", "vec4");
99
+ state._emitUniformFromString("vClipPlane2", "vec4");
100
+ state._emitUniformFromString("vClipPlane3", "vec4");
101
+ state._emitUniformFromString("vClipPlane4", "vec4");
102
+ state._emitUniformFromString("vClipPlane5", "vec4");
103
+ state._emitUniformFromString("vClipPlane6", "vec4");
104
+ return;
105
+ }
106
+ // Fragment
107
+ state.sharedData.bindableBlocks.push(this);
108
+ state.sharedData.blocksWithDefines.push(this);
109
+ state._emitFunctionFromInclude("clipPlaneFragmentDeclaration", comments);
110
+ state.compilationString += state._emitCodeFromInclude("clipPlaneFragment", comments);
111
+ return this;
112
+ };
113
+ return ClipPlanesBlock;
114
+ }(NodeMaterialBlock));
115
+ export { ClipPlanesBlock };
116
+ RegisterClass("BABYLON.ClipPlanesBlock", ClipPlanesBlock);
117
+ //# sourceMappingURL=clipPlanesBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipPlanesBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/clipPlanesBlock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,qCAAqC,EAAE,MAAM,mDAAmD,CAAC;AAE1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAKzD;;GAEG;AACH;IAAqC,mCAAiB;IAClD;;;OAGG;IACH,yBAAmB,IAAY;QAA/B,YACI,kBAAM,IAAI,EAAE,wBAAwB,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAGhE;QADG,KAAI,CAAC,aAAa,CAAC,eAAe,EAAE,qCAAqC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;;IAC9F,CAAC;IAED;;;OAGG;IACI,sCAAY,GAAnB;QACI,OAAO,iBAAiB,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACI,oCAAU,GAAjB,UAAkB,KAA6B;QAC3C,KAAK,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACzC,KAAK,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC5C,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC1C,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC7C,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC1C,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC7C,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC1C,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC7C,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC1C,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC7C,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAC1C,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAKD,sBAAW,0CAAa;QAHxB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;;;OAAA;IAED,sBAAW,mCAAM;aAAjB;YACI,OAAO,wBAAwB,CAAC,iBAAiB,CAAC;QACtD,CAAC;aAED,UAAkB,KAA+B,IAAG,CAAC;;;OAFpD;IAIM,wCAAc,GAArB,UAAsB,IAAkB,EAAE,YAA0B,EAAE,OAA4B;QAC9F,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAM,aAAa,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;QAChF,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAClF,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAClF,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAClF,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAClF,IAAM,aAAa,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QAElF,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,8BAAI,GAAX,UAAY,MAAc,EAAE,YAA0B,EAAE,IAAW;QAC/D,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAES,qCAAW,GAArB,UAAsB,KAA6B;QAC/C,iBAAM,WAAW,YAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,QAAQ,GAAG,YAAK,IAAI,CAAC,IAAI,CAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,QAAQ,EAAE;YACpD,SAAS;YACT,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC;YAElC,KAAK,CAAC,wBAAwB,CAAC,4BAA4B,EAAE,QAAQ,EAAE;gBACnE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,8BAA8B,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;aAC5E,CAAC,CAAC;YACH,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,EAAE;gBAC/E,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,sBAAsB,EAAE,CAAC;aACtF,CAAC,CAAC;YAEH,KAAK,CAAC,sBAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YACnD,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACpD,KAAK,CAAC,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAEpD,OAAO;SACV;QAED,WAAW;QACX,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,KAAK,CAAC,wBAAwB,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;QACzE,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC;IAChB,CAAC;IACL,sBAAC;AAAD,CAAC,AAjHD,CAAqC,iBAAiB,GAiHrD;;AAED,aAAa,CAAC,yBAAyB,EAAE,eAAe,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\nimport { MaterialHelper } from \"../../../materialHelper\";\r\nimport { Effect } from \"../../../effect\";\r\nimport { NodeMaterial, NodeMaterialDefines } from \"../../nodeMaterial\";\r\nimport { Mesh } from \"../../../../Meshes/mesh\";\r\nimport { AbstractMesh } from \"../../../../Meshes/abstractMesh\";\r\n/**\r\n * Block used to implement clip planes\r\n */\r\nexport class ClipPlanesBlock extends NodeMaterialBlock {\r\n /**\r\n * Create a new ClipPlanesBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment, true);\r\n\r\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false);\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 \"ClipPlanesBlock\";\r\n }\r\n\r\n /**\r\n * Initialize the block and prepare the context for build\r\n * @param state defines the state that will be used for the build\r\n */\r\n public initialize(state: NodeMaterialBuildState) {\r\n state._excludeVariableName(\"vClipPlane\");\r\n state._excludeVariableName(\"fClipDistance\");\r\n state._excludeVariableName(\"vClipPlane2\");\r\n state._excludeVariableName(\"fClipDistance2\");\r\n state._excludeVariableName(\"vClipPlane3\");\r\n state._excludeVariableName(\"fClipDistance3\");\r\n state._excludeVariableName(\"vClipPlane4\");\r\n state._excludeVariableName(\"fClipDistance4\");\r\n state._excludeVariableName(\"vClipPlane5\");\r\n state._excludeVariableName(\"fClipDistance5\");\r\n state._excludeVariableName(\"vClipPlane6\");\r\n state._excludeVariableName(\"fClipDistance6\");\r\n }\r\n\r\n /**\r\n * Gets the worldPosition input component\r\n */\r\n public get worldPosition(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n public get target() {\r\n return NodeMaterialBlockTargets.VertexAndFragment;\r\n }\r\n\r\n public set target(value: NodeMaterialBlockTargets) {}\r\n\r\n public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {\r\n const scene = mesh.getScene();\r\n\r\n const useClipPlane1 = scene.clipPlane !== undefined && scene.clipPlane !== null;\r\n const useClipPlane2 = scene.clipPlane2 !== undefined && scene.clipPlane2 !== null;\r\n const useClipPlane3 = scene.clipPlane3 !== undefined && scene.clipPlane3 !== null;\r\n const useClipPlane4 = scene.clipPlane4 !== undefined && scene.clipPlane4 !== null;\r\n const useClipPlane5 = scene.clipPlane5 !== undefined && scene.clipPlane5 !== null;\r\n const useClipPlane6 = scene.clipPlane6 !== undefined && scene.clipPlane6 !== null;\r\n\r\n defines.setValue(\"CLIPPLANE\", useClipPlane1, true);\r\n defines.setValue(\"CLIPPLANE2\", useClipPlane2, true);\r\n defines.setValue(\"CLIPPLANE3\", useClipPlane3, true);\r\n defines.setValue(\"CLIPPLANE4\", useClipPlane4, true);\r\n defines.setValue(\"CLIPPLANE5\", useClipPlane5, true);\r\n defines.setValue(\"CLIPPLANE6\", useClipPlane6, true);\r\n }\r\n\r\n public bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh) {\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n const scene = mesh.getScene();\r\n\r\n MaterialHelper.BindClipPlane(effect, scene);\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n let comments = `//${this.name}`;\r\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\r\n // Vertex\r\n let worldPos = this.worldPosition;\r\n\r\n state._emitFunctionFromInclude(\"clipPlaneVertexDeclaration\", comments, {\r\n replaceStrings: [{ search: /uniform vec4 vClipPlane\\d*;/g, replace: \"\" }],\r\n });\r\n state.compilationString += state._emitCodeFromInclude(\"clipPlaneVertex\", comments, {\r\n replaceStrings: [{ search: /worldPos/g, replace: worldPos.associatedVariableName }],\r\n });\r\n\r\n state._emitUniformFromString(\"vClipPlane\", \"vec4\");\r\n state._emitUniformFromString(\"vClipPlane2\", \"vec4\");\r\n state._emitUniformFromString(\"vClipPlane3\", \"vec4\");\r\n state._emitUniformFromString(\"vClipPlane4\", \"vec4\");\r\n state._emitUniformFromString(\"vClipPlane5\", \"vec4\");\r\n state._emitUniformFromString(\"vClipPlane6\", \"vec4\");\r\n\r\n return;\r\n }\r\n\r\n // Fragment\r\n state.sharedData.bindableBlocks.push(this);\r\n state.sharedData.blocksWithDefines.push(this);\r\n\r\n state._emitFunctionFromInclude(\"clipPlaneFragmentDeclaration\", comments);\r\n state.compilationString += state._emitCodeFromInclude(\"clipPlaneFragment\", comments);\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ClipPlanesBlock\", ClipPlanesBlock);\r\n"]}
@@ -154,7 +154,7 @@ var CurrentScreenBlock = /** @class */ (function (_super) {
154
154
  }
155
155
  this._mainUVName = "vMain" + uvInput.associatedVariableName;
156
156
  state._emitVaryingFromString(this._mainUVName, "vec2");
157
- state.compilationString += this._mainUVName + " = " + uvInput.associatedVariableName + ".xy;\r\n";
157
+ state.compilationString += "".concat(this._mainUVName, " = ").concat(uvInput.associatedVariableName, ".xy;\r\n");
158
158
  if (!this._outputs.some(function (o) { return o.isConnectedInVertexShader; })) {
159
159
  return;
160
160
  }
@@ -173,14 +173,14 @@ var CurrentScreenBlock = /** @class */ (function (_super) {
173
173
  if (state.target === NodeMaterialBlockTargets.Fragment) {
174
174
  return;
175
175
  }
176
- state.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + uvInput.associatedVariableName + ");\r\n";
176
+ state.compilationString += "vec4 ".concat(this._tempTextureRead, " = texture2D(").concat(this._samplerName, ", ").concat(uvInput.associatedVariableName, ");\r\n");
177
177
  return;
178
178
  }
179
179
  if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {
180
- state.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + uvInput.associatedVariableName + ");\r\n";
180
+ state.compilationString += "vec4 ".concat(this._tempTextureRead, " = texture2D(").concat(this._samplerName, ", ").concat(uvInput.associatedVariableName, ");\r\n");
181
181
  return;
182
182
  }
183
- state.compilationString += "vec4 " + this._tempTextureRead + " = texture2D(" + this._samplerName + ", " + this._mainUVName + ");\r\n";
183
+ state.compilationString += "vec4 ".concat(this._tempTextureRead, " = texture2D(").concat(this._samplerName, ", ").concat(this._mainUVName, ");\r\n");
184
184
  };
185
185
  CurrentScreenBlock.prototype._writeOutput = function (state, output, swizzle, vertexMode) {
186
186
  if (vertexMode === void 0) { vertexMode = false; }
@@ -188,19 +188,19 @@ var CurrentScreenBlock = /** @class */ (function (_super) {
188
188
  if (state.target === NodeMaterialBlockTargets.Fragment) {
189
189
  return;
190
190
  }
191
- state.compilationString += this._declareOutput(output, state) + " = " + this._tempTextureRead + "." + swizzle + ";\r\n";
191
+ state.compilationString += "".concat(this._declareOutput(output, state), " = ").concat(this._tempTextureRead, ".").concat(swizzle, ";\r\n");
192
192
  return;
193
193
  }
194
194
  if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {
195
- state.compilationString += this._declareOutput(output, state) + " = " + this._tempTextureRead + "." + swizzle + ";\r\n";
195
+ state.compilationString += "".concat(this._declareOutput(output, state), " = ").concat(this._tempTextureRead, ".").concat(swizzle, ";\r\n");
196
196
  return;
197
197
  }
198
- state.compilationString += this._declareOutput(output, state) + " = " + this._tempTextureRead + "." + swizzle + ";\r\n";
199
- state.compilationString += "#ifdef " + this._linearDefineName + "\r\n";
200
- state.compilationString += output.associatedVariableName + " = toGammaSpace(" + output.associatedVariableName + ");\r\n";
198
+ state.compilationString += "".concat(this._declareOutput(output, state), " = ").concat(this._tempTextureRead, ".").concat(swizzle, ";\r\n");
199
+ state.compilationString += "#ifdef ".concat(this._linearDefineName, "\r\n");
200
+ state.compilationString += "".concat(output.associatedVariableName, " = toGammaSpace(").concat(output.associatedVariableName, ");\r\n");
201
201
  state.compilationString += "#endif\r\n";
202
- state.compilationString += "#ifdef " + this._gammaDefineName + "\r\n";
203
- state.compilationString += output.associatedVariableName + " = toLinearSpace(" + output.associatedVariableName + ");\r\n";
202
+ state.compilationString += "#ifdef ".concat(this._gammaDefineName, "\r\n");
203
+ state.compilationString += "".concat(output.associatedVariableName, " = toLinearSpace(").concat(output.associatedVariableName, ");\r\n");
204
204
  state.compilationString += "#endif\r\n";
205
205
  };
206
206
  CurrentScreenBlock.prototype._buildBlock = function (state) {
@@ -228,7 +228,7 @@ var CurrentScreenBlock = /** @class */ (function (_super) {
228
228
  state._emit2DSampler(this._samplerName);
229
229
  this._linearDefineName = state._getFreeDefineName("ISLINEAR");
230
230
  this._gammaDefineName = state._getFreeDefineName("ISGAMMA");
231
- var comments = "//" + this.name;
231
+ var comments = "//".concat(this.name);
232
232
  state._emitFunctionFromInclude("helperFunctions", comments);
233
233
  this._writeTextureRead(state);
234
234
  for (var _i = 0, _a = this._outputs; _i < _a.length; _i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"currentScreenBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/currentScreenBlock.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 { AbstractMesh } from '../../../../Meshes/abstractMesh';\r\nimport { NodeMaterialDefines } from '../../nodeMaterial';\r\nimport { BaseTexture } from '../../../Textures/baseTexture';\r\nimport { Nullable } from '../../../../types';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\nimport { Texture } from '../../../Textures/texture';\r\nimport { Scene } from '../../../../scene';\r\nimport { InputBlock } from '../Input/inputBlock';\r\n\r\ndeclare type NodeMaterial = import(\"../../nodeMaterial\").NodeMaterial;\r\n\r\n/**\r\n * Base block used as input for post process\r\n */\r\nexport class CurrentScreenBlock extends NodeMaterialBlock {\r\n\r\n private _samplerName = \"textureSampler\";\r\n private _linearDefineName: string;\r\n private _gammaDefineName: string;\r\n private _mainUVName: string;\r\n private _tempTextureRead: string;\r\n\r\n /**\r\n * Gets or sets the texture associated with the node\r\n */\r\n public texture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\r\n */\r\n public convertToGammaSpace = false;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if content needs to be converted to linear space\r\n */\r\n public convertToLinearSpace = false;\r\n\r\n /**\r\n * Create a new CurrentScreenBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this._isUnique = false;\r\n\r\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2, false, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n\r\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector4);\r\n\r\n this._inputs[0]._prioritizeVertex = false;\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 \"CurrentScreenBlock\";\r\n }\r\n\r\n /**\r\n * Gets the uv input component\r\n */\r\n public get uv(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the rgba output component\r\n */\r\n public get rgba(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the rgb output component\r\n */\r\n public get rgb(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the r output component\r\n */\r\n public get r(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the g output component\r\n */\r\n public get g(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the b output component\r\n */\r\n public get b(): NodeMaterialConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the a output component\r\n */\r\n public get a(): NodeMaterialConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Initialize the block and prepare the context for build\r\n * @param state defines the state that will be used for the build\r\n */\r\n public initialize(state: NodeMaterialBuildState) {\r\n state._excludeVariableName(\"textureSampler\");\r\n }\r\n\r\n public get target() {\r\n if (!this.uv.isConnected) {\r\n return NodeMaterialBlockTargets.VertexAndFragment;\r\n }\r\n\r\n if (this.uv.sourceBlock!.isInput) {\r\n return NodeMaterialBlockTargets.VertexAndFragment;\r\n }\r\n\r\n return NodeMaterialBlockTargets.Fragment;\r\n }\r\n\r\n public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {\r\n defines.setValue(this._linearDefineName, this.convertToGammaSpace, true);\r\n defines.setValue(this._gammaDefineName, this.convertToLinearSpace, true);\r\n }\r\n\r\n public isReady() {\r\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _injectVertexCode(state: NodeMaterialBuildState) {\r\n let uvInput = this.uv;\r\n\r\n if (uvInput.connectedPoint!.ownerBlock.isInput) {\r\n let uvInputOwnerBlock = uvInput.connectedPoint!.ownerBlock as InputBlock;\r\n\r\n if (!uvInputOwnerBlock.isAttribute) {\r\n state._emitUniformFromString(uvInput.associatedVariableName, \"vec2\");\r\n }\r\n }\r\n\r\n this._mainUVName = \"vMain\" + uvInput.associatedVariableName;\r\n\r\n state._emitVaryingFromString(this._mainUVName, \"vec2\");\r\n\r\n state.compilationString += `${this._mainUVName} = ${uvInput.associatedVariableName}.xy;\\r\\n`;\r\n\r\n if (!this._outputs.some((o) => o.isConnectedInVertexShader)) {\r\n return;\r\n }\r\n\r\n this._writeTextureRead(state, true);\r\n\r\n for (var output of this._outputs) {\r\n if (output.hasEndpoints) {\r\n this._writeOutput(state, output, output.name, true);\r\n }\r\n }\r\n }\r\n\r\n private _writeTextureRead(state: NodeMaterialBuildState, vertexMode = false) {\r\n let uvInput = this.uv;\r\n\r\n if (vertexMode) {\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n return;\r\n }\r\n\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${uvInput.associatedVariableName});\\r\\n`;\r\n return;\r\n }\r\n\r\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${uvInput.associatedVariableName});\\r\\n`;\r\n return;\r\n }\r\n\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${this._mainUVName});\\r\\n`;\r\n }\r\n\r\n private _writeOutput(state: NodeMaterialBuildState, output: NodeMaterialConnectionPoint, swizzle: string, vertexMode = false) {\r\n if (vertexMode) {\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n return;\r\n }\r\n\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n\r\n return;\r\n }\r\n\r\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n return;\r\n }\r\n\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n\r\n state.compilationString += `#ifdef ${this._linearDefineName}\\r\\n`;\r\n state.compilationString += `${output.associatedVariableName} = toGammaSpace(${output.associatedVariableName});\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n\r\n state.compilationString += `#ifdef ${this._gammaDefineName}\\r\\n`;\r\n state.compilationString += `${output.associatedVariableName} = toLinearSpace(${output.associatedVariableName});\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\r\n\r\n if (state.sharedData.blockingBlocks.indexOf(this) < 0) {\r\n state.sharedData.blockingBlocks.push(this);\r\n }\r\n if (state.sharedData.textureBlocks.indexOf(this) < 0) {\r\n state.sharedData.textureBlocks.push(this);\r\n }\r\n if (state.sharedData.blocksWithDefines.indexOf(this) < 0) {\r\n state.sharedData.blocksWithDefines.push(this);\r\n }\r\n\r\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\r\n // Vertex\r\n state._emit2DSampler(this._samplerName);\r\n this._injectVertexCode(state);\r\n return;\r\n }\r\n\r\n // Fragment\r\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader)) {\r\n return;\r\n }\r\n\r\n state._emit2DSampler(this._samplerName);\r\n\r\n this._linearDefineName = state._getFreeDefineName(\"ISLINEAR\");\r\n this._gammaDefineName = state._getFreeDefineName(\"ISGAMMA\");\r\n\r\n let comments = `//${this.name}`;\r\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\r\n\r\n this._writeTextureRead(state);\r\n\r\n for (var output of this._outputs) {\r\n if (output.hasEndpoints) {\r\n this._writeOutput(state, output, output.name);\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.convertToGammaSpace = this.convertToGammaSpace;\r\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\r\n if (this.texture && !this.texture.isRenderTarget) {\r\n serializationObject.texture = this.texture.serialize();\r\n }\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.convertToGammaSpace = serializationObject.convertToGammaSpace;\r\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\r\n\r\n if (serializationObject.texture) {\r\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\r\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl) as Texture;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CurrentScreenBlock\", CurrentScreenBlock);"]}
1
+ {"version":3,"file":"currentScreenBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/currentScreenBlock.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 { AbstractMesh } from '../../../../Meshes/abstractMesh';\r\nimport { NodeMaterialDefines } from '../../nodeMaterial';\r\nimport { BaseTexture } from '../../../Textures/baseTexture';\r\nimport { Nullable } from '../../../../types';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\nimport { Texture } from '../../../Textures/texture';\r\nimport { Scene } from '../../../../scene';\r\nimport { InputBlock } from '../Input/inputBlock';\r\n\r\ndeclare type NodeMaterial = import(\"../../nodeMaterial\").NodeMaterial;\r\n\r\n/**\r\n * Base block used as input for post process\r\n */\r\nexport class CurrentScreenBlock extends NodeMaterialBlock {\r\n\r\n private _samplerName = \"textureSampler\";\r\n private _linearDefineName: string;\r\n private _gammaDefineName: string;\r\n private _mainUVName: string;\r\n private _tempTextureRead: string;\r\n\r\n /**\r\n * Gets or sets the texture associated with the node\r\n */\r\n public texture: Nullable<BaseTexture>;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if content needs to be converted to gamma space\r\n */\r\n public convertToGammaSpace = false;\r\n\r\n /**\r\n * Gets or sets a boolean indicating if content needs to be converted to linear space\r\n */\r\n public convertToLinearSpace = false;\r\n\r\n /**\r\n * Create a new CurrentScreenBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this._isUnique = false;\r\n\r\n this.registerInput(\"uv\", NodeMaterialBlockConnectionPointTypes.Vector2, false, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this.registerOutput(\"rgba\", NodeMaterialBlockConnectionPointTypes.Color4, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"rgb\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"r\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"g\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"b\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n this.registerOutput(\"a\", NodeMaterialBlockConnectionPointTypes.Float, NodeMaterialBlockTargets.Neutral);\r\n\r\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector3);\r\n this._inputs[0].acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Vector4);\r\n\r\n this._inputs[0]._prioritizeVertex = false;\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 \"CurrentScreenBlock\";\r\n }\r\n\r\n /**\r\n * Gets the uv input component\r\n */\r\n public get uv(): NodeMaterialConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the rgba output component\r\n */\r\n public get rgba(): NodeMaterialConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n /**\r\n * Gets the rgb output component\r\n */\r\n public get rgb(): NodeMaterialConnectionPoint {\r\n return this._outputs[1];\r\n }\r\n\r\n /**\r\n * Gets the r output component\r\n */\r\n public get r(): NodeMaterialConnectionPoint {\r\n return this._outputs[2];\r\n }\r\n\r\n /**\r\n * Gets the g output component\r\n */\r\n public get g(): NodeMaterialConnectionPoint {\r\n return this._outputs[3];\r\n }\r\n\r\n /**\r\n * Gets the b output component\r\n */\r\n public get b(): NodeMaterialConnectionPoint {\r\n return this._outputs[4];\r\n }\r\n\r\n /**\r\n * Gets the a output component\r\n */\r\n public get a(): NodeMaterialConnectionPoint {\r\n return this._outputs[5];\r\n }\r\n\r\n /**\r\n * Initialize the block and prepare the context for build\r\n * @param state defines the state that will be used for the build\r\n */\r\n public initialize(state: NodeMaterialBuildState) {\r\n state._excludeVariableName(\"textureSampler\");\r\n }\r\n\r\n public get target() {\r\n if (!this.uv.isConnected) {\r\n return NodeMaterialBlockTargets.VertexAndFragment;\r\n }\r\n\r\n if (this.uv.sourceBlock!.isInput) {\r\n return NodeMaterialBlockTargets.VertexAndFragment;\r\n }\r\n\r\n return NodeMaterialBlockTargets.Fragment;\r\n }\r\n\r\n public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {\r\n defines.setValue(this._linearDefineName, this.convertToGammaSpace, true);\r\n defines.setValue(this._gammaDefineName, this.convertToLinearSpace, true);\r\n }\r\n\r\n public isReady() {\r\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private _injectVertexCode(state: NodeMaterialBuildState) {\r\n let uvInput = this.uv;\r\n\r\n if (uvInput.connectedPoint!.ownerBlock.isInput) {\r\n let uvInputOwnerBlock = uvInput.connectedPoint!.ownerBlock as InputBlock;\r\n\r\n if (!uvInputOwnerBlock.isAttribute) {\r\n state._emitUniformFromString(uvInput.associatedVariableName, \"vec2\");\r\n }\r\n }\r\n\r\n this._mainUVName = \"vMain\" + uvInput.associatedVariableName;\r\n\r\n state._emitVaryingFromString(this._mainUVName, \"vec2\");\r\n\r\n state.compilationString += `${this._mainUVName} = ${uvInput.associatedVariableName}.xy;\\r\\n`;\r\n\r\n if (!this._outputs.some((o) => o.isConnectedInVertexShader)) {\r\n return;\r\n }\r\n\r\n this._writeTextureRead(state, true);\r\n\r\n for (var output of this._outputs) {\r\n if (output.hasEndpoints) {\r\n this._writeOutput(state, output, output.name, true);\r\n }\r\n }\r\n }\r\n\r\n private _writeTextureRead(state: NodeMaterialBuildState, vertexMode = false) {\r\n let uvInput = this.uv;\r\n\r\n if (vertexMode) {\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n return;\r\n }\r\n\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${uvInput.associatedVariableName});\\r\\n`;\r\n return;\r\n }\r\n\r\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${uvInput.associatedVariableName});\\r\\n`;\r\n return;\r\n }\r\n\r\n state.compilationString += `vec4 ${this._tempTextureRead} = texture2D(${this._samplerName}, ${this._mainUVName});\\r\\n`;\r\n }\r\n\r\n private _writeOutput(state: NodeMaterialBuildState, output: NodeMaterialConnectionPoint, swizzle: string, vertexMode = false) {\r\n if (vertexMode) {\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n return;\r\n }\r\n\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n\r\n return;\r\n }\r\n\r\n if (this.uv.ownerBlock.target === NodeMaterialBlockTargets.Fragment) {\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n return;\r\n }\r\n\r\n state.compilationString += `${this._declareOutput(output, state)} = ${this._tempTextureRead}.${swizzle};\\r\\n`;\r\n\r\n state.compilationString += `#ifdef ${this._linearDefineName}\\r\\n`;\r\n state.compilationString += `${output.associatedVariableName} = toGammaSpace(${output.associatedVariableName});\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n\r\n state.compilationString += `#ifdef ${this._gammaDefineName}\\r\\n`;\r\n state.compilationString += `${output.associatedVariableName} = toLinearSpace(${output.associatedVariableName});\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n this._tempTextureRead = state._getFreeVariableName(\"tempTextureRead\");\r\n\r\n if (state.sharedData.blockingBlocks.indexOf(this) < 0) {\r\n state.sharedData.blockingBlocks.push(this);\r\n }\r\n if (state.sharedData.textureBlocks.indexOf(this) < 0) {\r\n state.sharedData.textureBlocks.push(this);\r\n }\r\n if (state.sharedData.blocksWithDefines.indexOf(this) < 0) {\r\n state.sharedData.blocksWithDefines.push(this);\r\n }\r\n\r\n if (state.target !== NodeMaterialBlockTargets.Fragment) {\r\n // Vertex\r\n state._emit2DSampler(this._samplerName);\r\n this._injectVertexCode(state);\r\n return;\r\n }\r\n\r\n // Fragment\r\n if (!this._outputs.some((o) => o.isConnectedInFragmentShader)) {\r\n return;\r\n }\r\n\r\n state._emit2DSampler(this._samplerName);\r\n\r\n this._linearDefineName = state._getFreeDefineName(\"ISLINEAR\");\r\n this._gammaDefineName = state._getFreeDefineName(\"ISGAMMA\");\r\n\r\n let comments = `//${this.name}`;\r\n state._emitFunctionFromInclude(\"helperFunctions\", comments);\r\n\r\n this._writeTextureRead(state);\r\n\r\n for (var output of this._outputs) {\r\n if (output.hasEndpoints) {\r\n this._writeOutput(state, output, output.name);\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.convertToGammaSpace = this.convertToGammaSpace;\r\n serializationObject.convertToLinearSpace = this.convertToLinearSpace;\r\n if (this.texture && !this.texture.isRenderTarget) {\r\n serializationObject.texture = this.texture.serialize();\r\n }\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.convertToGammaSpace = serializationObject.convertToGammaSpace;\r\n this.convertToLinearSpace = !!serializationObject.convertToLinearSpace;\r\n\r\n if (serializationObject.texture) {\r\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\r\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl) as Texture;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.CurrentScreenBlock\", CurrentScreenBlock);"]}
@@ -120,7 +120,7 @@ var FogBlock = /** @class */ (function (_super) {
120
120
  if (state.target === NodeMaterialBlockTargets.Fragment) {
121
121
  state.sharedData.blocksWithDefines.push(this);
122
122
  state.sharedData.bindableBlocks.push(this);
123
- state._emitFunctionFromInclude("fogFragmentDeclaration", "//" + this.name, {
123
+ state._emitFunctionFromInclude("fogFragmentDeclaration", "//".concat(this.name), {
124
124
  removeUniforms: true,
125
125
  removeVaryings: true,
126
126
  removeIfDef: false,
@@ -133,9 +133,9 @@ var FogBlock = /** @class */ (function (_super) {
133
133
  var output = this._outputs[0];
134
134
  state._emitUniformFromString(this._fogParameters, "vec4");
135
135
  state.compilationString += "#ifdef FOG\r\n";
136
- state.compilationString += "float " + tempFogVariablename + " = CalcFogFactor(" + this._fogDistanceName + ", " + this._fogParameters + ");\r\n";
137
- state.compilationString += this._declareOutput(output, state) + (" = " + tempFogVariablename + " * " + color.associatedVariableName + ".rgb + (1.0 - " + tempFogVariablename + ") * " + fogColor.associatedVariableName + ".rgb;\r\n");
138
- state.compilationString += "#else\r\n" + this._declareOutput(output, state) + " = " + color.associatedVariableName + ".rgb;\r\n";
136
+ state.compilationString += "float ".concat(tempFogVariablename, " = CalcFogFactor(").concat(this._fogDistanceName, ", ").concat(this._fogParameters, ");\r\n");
137
+ state.compilationString += this._declareOutput(output, state) + " = ".concat(tempFogVariablename, " * ").concat(color.associatedVariableName, ".rgb + (1.0 - ").concat(tempFogVariablename, ") * ").concat(fogColor.associatedVariableName, ".rgb;\r\n");
138
+ state.compilationString += "#else\r\n".concat(this._declareOutput(output, state), " = ").concat(color.associatedVariableName, ".rgb;\r\n");
139
139
  state.compilationString += "#endif\r\n";
140
140
  }
141
141
  else {
@@ -143,7 +143,7 @@ var FogBlock = /** @class */ (function (_super) {
143
143
  var view = this.view;
144
144
  this._fogDistanceName = state._getFreeVariableName("vFogDistance");
145
145
  state._emitVaryingFromString(this._fogDistanceName, "vec3");
146
- state.compilationString += this._fogDistanceName + " = (" + view.associatedVariableName + " * " + worldPos.associatedVariableName + ").xyz;\r\n";
146
+ state.compilationString += "".concat(this._fogDistanceName, " = (").concat(view.associatedVariableName, " * ").concat(worldPos.associatedVariableName, ").xyz;\r\n");
147
147
  }
148
148
  return this;
149
149
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fogBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/fogBlock.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 { NodeMaterialSystemValues } from '../../Enums/nodeMaterialSystemValues';\r\nimport { NodeMaterialBlockTargets } from '../../Enums/nodeMaterialBlockTargets';\r\nimport { Mesh } from '../../../../Meshes/mesh';\r\nimport { Effect } from '../../../effect';\r\nimport { NodeMaterialConnectionPoint } from '../../nodeMaterialBlockConnectionPoint';\r\nimport { AbstractMesh } from '../../../../Meshes/abstractMesh';\r\nimport { MaterialHelper } from '../../../materialHelper';\r\nimport { NodeMaterial, NodeMaterialDefines } from '../../nodeMaterial';\r\nimport { InputBlock } from '../Input/inputBlock';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\n\r\nimport \"../../../../Shaders/ShadersInclude/fogFragmentDeclaration\";\r\n\r\n/**\r\n * Block used to add support for scene fog\r\n */\r\nexport class FogBlock extends NodeMaterialBlock {\r\n private _fogDistanceName: string;\r\n private _fogParameters: string;\r\n\r\n /**\r\n * Create a new FogBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment, false);\r\n\r\n // Vertex\r\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\r\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Vertex);\r\n\r\n // Fragment\r\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Color3, false, NodeMaterialBlockTargets.Fragment);\r\n this.registerInput(\"fogColor\", NodeMaterialBlockConnectionPointTypes.Color3, false, NodeMaterialBlockTargets.Fragment);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\r\n\r\n this.input.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Color4);\r\n this.fogColor.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Color4);\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 \"FogBlock\";\r\n }\r\n\r\n /**\r\n * Gets the world position input 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 view input component\r\n */\r\n public get view(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the color input component\r\n */\r\n public get input(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the fog color input component\r\n */\r\n public get fogColor(): NodeMaterialConnectionPoint {\r\n return this._inputs[3];\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.view.isConnected) {\r\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View);\r\n\r\n if (!viewInput) {\r\n viewInput = new InputBlock(\"view\");\r\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\r\n }\r\n viewInput.output.connectTo(this.view);\r\n }\r\n if (!this.fogColor.isConnected) {\r\n let fogColorInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.FogColor);\r\n\r\n if (!fogColorInput) {\r\n fogColorInput = new InputBlock(\"fogColor\", undefined, NodeMaterialBlockConnectionPointTypes.Color3);\r\n fogColorInput.setAsSystemValue(NodeMaterialSystemValues.FogColor);\r\n }\r\n fogColorInput.output.connectTo(this.fogColor);\r\n }\r\n }\r\n\r\n public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {\r\n let scene = mesh.getScene();\r\n defines.setValue(\"FOG\", nodeMaterial.fogEnabled && MaterialHelper.GetFogState(mesh, scene));\r\n }\r\n\r\n public bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh) {\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n const scene = mesh.getScene();\r\n effect.setFloat4(this._fogParameters, scene.fogMode, scene.fogStart, scene.fogEnd, scene.fogDensity);\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n state.sharedData.blocksWithDefines.push(this);\r\n state.sharedData.bindableBlocks.push(this);\r\n\r\n state._emitFunctionFromInclude(\"fogFragmentDeclaration\", `//${this.name}`, {\r\n removeUniforms: true,\r\n removeVaryings: true,\r\n removeIfDef: false,\r\n replaceStrings: [{ search: /float CalcFogFactor\\(\\)/, replace: \"float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)\" }]\r\n });\r\n\r\n let tempFogVariablename = state._getFreeVariableName(\"fog\");\r\n let color = this.input;\r\n let fogColor = this.fogColor;\r\n this._fogParameters = state._getFreeVariableName(\"fogParameters\");\r\n let output = this._outputs[0];\r\n\r\n state._emitUniformFromString(this._fogParameters, \"vec4\");\r\n\r\n state.compilationString += `#ifdef FOG\\r\\n`;\r\n state.compilationString += `float ${tempFogVariablename} = CalcFogFactor(${this._fogDistanceName}, ${this._fogParameters});\\r\\n`;\r\n state.compilationString += this._declareOutput(output, state) + ` = ${tempFogVariablename} * ${color.associatedVariableName}.rgb + (1.0 - ${tempFogVariablename}) * ${fogColor.associatedVariableName}.rgb;\\r\\n`;\r\n state.compilationString += `#else\\r\\n${this._declareOutput(output, state)} = ${color.associatedVariableName}.rgb;\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n } else {\r\n let worldPos = this.worldPosition;\r\n let view = this.view;\r\n this._fogDistanceName = state._getFreeVariableName(\"vFogDistance\");\r\n state._emitVaryingFromString(this._fogDistanceName, \"vec3\");\r\n state.compilationString += `${this._fogDistanceName} = (${view.associatedVariableName} * ${worldPos.associatedVariableName}).xyz;\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.FogBlock\", FogBlock);"]}
1
+ {"version":3,"file":"fogBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/fogBlock.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 { NodeMaterialSystemValues } from '../../Enums/nodeMaterialSystemValues';\r\nimport { NodeMaterialBlockTargets } from '../../Enums/nodeMaterialBlockTargets';\r\nimport { Mesh } from '../../../../Meshes/mesh';\r\nimport { Effect } from '../../../effect';\r\nimport { NodeMaterialConnectionPoint } from '../../nodeMaterialBlockConnectionPoint';\r\nimport { AbstractMesh } from '../../../../Meshes/abstractMesh';\r\nimport { MaterialHelper } from '../../../materialHelper';\r\nimport { NodeMaterial, NodeMaterialDefines } from '../../nodeMaterial';\r\nimport { InputBlock } from '../Input/inputBlock';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\n\r\nimport \"../../../../Shaders/ShadersInclude/fogFragmentDeclaration\";\r\n\r\n/**\r\n * Block used to add support for scene fog\r\n */\r\nexport class FogBlock extends NodeMaterialBlock {\r\n private _fogDistanceName: string;\r\n private _fogParameters: string;\r\n\r\n /**\r\n * Create a new FogBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment, false);\r\n\r\n // Vertex\r\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\r\n this.registerInput(\"view\", NodeMaterialBlockConnectionPointTypes.Matrix, false, NodeMaterialBlockTargets.Vertex);\r\n\r\n // Fragment\r\n this.registerInput(\"input\", NodeMaterialBlockConnectionPointTypes.Color3, false, NodeMaterialBlockTargets.Fragment);\r\n this.registerInput(\"fogColor\", NodeMaterialBlockConnectionPointTypes.Color3, false, NodeMaterialBlockTargets.Fragment);\r\n\r\n this.registerOutput(\"output\", NodeMaterialBlockConnectionPointTypes.Color3, NodeMaterialBlockTargets.Fragment);\r\n\r\n this.input.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Color4);\r\n this.fogColor.acceptedConnectionPointTypes.push(NodeMaterialBlockConnectionPointTypes.Color4);\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 \"FogBlock\";\r\n }\r\n\r\n /**\r\n * Gets the world position input 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 view input component\r\n */\r\n public get view(): NodeMaterialConnectionPoint {\r\n return this._inputs[1];\r\n }\r\n\r\n /**\r\n * Gets the color input component\r\n */\r\n public get input(): NodeMaterialConnectionPoint {\r\n return this._inputs[2];\r\n }\r\n\r\n /**\r\n * Gets the fog color input component\r\n */\r\n public get fogColor(): NodeMaterialConnectionPoint {\r\n return this._inputs[3];\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.view.isConnected) {\r\n let viewInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.View);\r\n\r\n if (!viewInput) {\r\n viewInput = new InputBlock(\"view\");\r\n viewInput.setAsSystemValue(NodeMaterialSystemValues.View);\r\n }\r\n viewInput.output.connectTo(this.view);\r\n }\r\n if (!this.fogColor.isConnected) {\r\n let fogColorInput = material.getInputBlockByPredicate((b) => b.systemValue === NodeMaterialSystemValues.FogColor);\r\n\r\n if (!fogColorInput) {\r\n fogColorInput = new InputBlock(\"fogColor\", undefined, NodeMaterialBlockConnectionPointTypes.Color3);\r\n fogColorInput.setAsSystemValue(NodeMaterialSystemValues.FogColor);\r\n }\r\n fogColorInput.output.connectTo(this.fogColor);\r\n }\r\n }\r\n\r\n public prepareDefines(mesh: AbstractMesh, nodeMaterial: NodeMaterial, defines: NodeMaterialDefines) {\r\n let scene = mesh.getScene();\r\n defines.setValue(\"FOG\", nodeMaterial.fogEnabled && MaterialHelper.GetFogState(mesh, scene));\r\n }\r\n\r\n public bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh) {\r\n if (!mesh) {\r\n return;\r\n }\r\n\r\n const scene = mesh.getScene();\r\n effect.setFloat4(this._fogParameters, scene.fogMode, scene.fogStart, scene.fogEnd, scene.fogDensity);\r\n }\r\n\r\n protected _buildBlock(state: NodeMaterialBuildState) {\r\n super._buildBlock(state);\r\n\r\n if (state.target === NodeMaterialBlockTargets.Fragment) {\r\n state.sharedData.blocksWithDefines.push(this);\r\n state.sharedData.bindableBlocks.push(this);\r\n\r\n state._emitFunctionFromInclude(\"fogFragmentDeclaration\", `//${this.name}`, {\r\n removeUniforms: true,\r\n removeVaryings: true,\r\n removeIfDef: false,\r\n replaceStrings: [{ search: /float CalcFogFactor\\(\\)/, replace: \"float CalcFogFactor(vec3 vFogDistance, vec4 vFogInfos)\" }]\r\n });\r\n\r\n let tempFogVariablename = state._getFreeVariableName(\"fog\");\r\n let color = this.input;\r\n let fogColor = this.fogColor;\r\n this._fogParameters = state._getFreeVariableName(\"fogParameters\");\r\n let output = this._outputs[0];\r\n\r\n state._emitUniformFromString(this._fogParameters, \"vec4\");\r\n\r\n state.compilationString += `#ifdef FOG\\r\\n`;\r\n state.compilationString += `float ${tempFogVariablename} = CalcFogFactor(${this._fogDistanceName}, ${this._fogParameters});\\r\\n`;\r\n state.compilationString += this._declareOutput(output, state) + ` = ${tempFogVariablename} * ${color.associatedVariableName}.rgb + (1.0 - ${tempFogVariablename}) * ${fogColor.associatedVariableName}.rgb;\\r\\n`;\r\n state.compilationString += `#else\\r\\n${this._declareOutput(output, state)} = ${color.associatedVariableName}.rgb;\\r\\n`;\r\n state.compilationString += `#endif\\r\\n`;\r\n } else {\r\n let worldPos = this.worldPosition;\r\n let view = this.view;\r\n this._fogDistanceName = state._getFreeVariableName(\"vFogDistance\");\r\n state._emitVaryingFromString(this._fogDistanceName, \"vec3\");\r\n state.compilationString += `${this._fogDistanceName} = (${view.associatedVariableName} * ${worldPos.associatedVariableName}).xyz;\\r\\n`;\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.FogBlock\", FogBlock);"]}
@@ -107,17 +107,17 @@ var ImageSourceBlock = /** @class */ (function (_super) {
107
107
  if (!this.texture) {
108
108
  return codeString;
109
109
  }
110
- codeString += this._codeVariableName + ".texture = new BABYLON.Texture(\"" + this.texture.name + "\", null, " + this.texture.noMipmap + ", " + this.texture.invertY + ", " + this.texture.samplingMode + ");\r\n";
111
- codeString += this._codeVariableName + ".texture.wrapU = " + this.texture.wrapU + ";\r\n";
112
- codeString += this._codeVariableName + ".texture.wrapV = " + this.texture.wrapV + ";\r\n";
113
- codeString += this._codeVariableName + ".texture.uAng = " + this.texture.uAng + ";\r\n";
114
- codeString += this._codeVariableName + ".texture.vAng = " + this.texture.vAng + ";\r\n";
115
- codeString += this._codeVariableName + ".texture.wAng = " + this.texture.wAng + ";\r\n";
116
- codeString += this._codeVariableName + ".texture.uOffset = " + this.texture.uOffset + ";\r\n";
117
- codeString += this._codeVariableName + ".texture.vOffset = " + this.texture.vOffset + ";\r\n";
118
- codeString += this._codeVariableName + ".texture.uScale = " + this.texture.uScale + ";\r\n";
119
- codeString += this._codeVariableName + ".texture.vScale = " + this.texture.vScale + ";\r\n";
120
- codeString += this._codeVariableName + ".texture.coordinatesMode = " + this.texture.coordinatesMode + ";\r\n";
110
+ codeString += "".concat(this._codeVariableName, ".texture = new BABYLON.Texture(\"").concat(this.texture.name, "\", null, ").concat(this.texture.noMipmap, ", ").concat(this.texture.invertY, ", ").concat(this.texture.samplingMode, ");\r\n");
111
+ codeString += "".concat(this._codeVariableName, ".texture.wrapU = ").concat(this.texture.wrapU, ";\r\n");
112
+ codeString += "".concat(this._codeVariableName, ".texture.wrapV = ").concat(this.texture.wrapV, ";\r\n");
113
+ codeString += "".concat(this._codeVariableName, ".texture.uAng = ").concat(this.texture.uAng, ";\r\n");
114
+ codeString += "".concat(this._codeVariableName, ".texture.vAng = ").concat(this.texture.vAng, ";\r\n");
115
+ codeString += "".concat(this._codeVariableName, ".texture.wAng = ").concat(this.texture.wAng, ";\r\n");
116
+ codeString += "".concat(this._codeVariableName, ".texture.uOffset = ").concat(this.texture.uOffset, ";\r\n");
117
+ codeString += "".concat(this._codeVariableName, ".texture.vOffset = ").concat(this.texture.vOffset, ";\r\n");
118
+ codeString += "".concat(this._codeVariableName, ".texture.uScale = ").concat(this.texture.uScale, ";\r\n");
119
+ codeString += "".concat(this._codeVariableName, ".texture.vScale = ").concat(this.texture.vScale, ";\r\n");
120
+ codeString += "".concat(this._codeVariableName, ".texture.coordinatesMode = ").concat(this.texture.coordinatesMode, ";\r\n");
121
121
  return codeString;
122
122
  };
123
123
  ImageSourceBlock.prototype.serialize = function () {
@@ -1 +1 @@
1
- {"version":3,"file":"imageSourceBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/imageSourceBlock.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, NodeMaterialConnectionPointDirection } from '../../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\nimport { Nullable } from '../../../../types';\r\nimport { Texture } from '../../../Textures/texture';\r\nimport { Engine } from '../../../../Engines/engine';\r\n\r\nimport { Effect } from '../../../effect';\r\nimport { NodeMaterial } from '../../nodeMaterial';\r\nimport { Mesh } from '../../../../Meshes/mesh';\r\nimport { Scene } from '../../../../scene';\r\nimport { NodeMaterialConnectionPointCustomObject } from '../../nodeMaterialConnectionPointCustomObject';\r\n/**\r\n * Block used to provide an image for a TextureBlock\r\n */\r\nexport class ImageSourceBlock extends NodeMaterialBlock {\r\n private _samplerName: string;\r\n protected _texture: Nullable<Texture>;\r\n /**\r\n * Gets or sets the texture associated with the node\r\n */\r\n public get texture(): Nullable<Texture> {\r\n return this._texture;\r\n }\r\n\r\n public set texture(texture: Nullable<Texture>) {\r\n if (this._texture === texture) {\r\n return;\r\n }\r\n\r\n const scene = texture?.getScene() ?? Engine.LastCreatedScene;\r\n\r\n if (!texture && scene) {\r\n scene.markAllMaterialsAsDirty(1, (mat) => {\r\n return mat.hasTexture(this._texture!);\r\n });\r\n }\r\n\r\n this._texture = texture;\r\n\r\n if (texture && scene) {\r\n scene.markAllMaterialsAsDirty(1, (mat) => {\r\n return mat.hasTexture(texture);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets the sampler name associated with this image source\r\n */\r\n public get samplerName(): string {\r\n return this._samplerName;\r\n }\r\n\r\n /**\r\n * Creates a new ImageSourceBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this.registerOutput(\"source\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment,\r\n new NodeMaterialConnectionPointCustomObject(\"source\", this, NodeMaterialConnectionPointDirection.Output, ImageSourceBlock, \"ImageSourceBlock\"));\r\n }\r\n\r\n public bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh) {\r\n if (!this.texture) {\r\n return;\r\n }\r\n\r\n effect.setTexture(this._samplerName, this.texture);\r\n }\r\n\r\n public isReady() {\r\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n\r\n return 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 \"ImageSourceBlock\";\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get source(): 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 if (state.target === NodeMaterialBlockTargets.Vertex) {\r\n this._samplerName = state._getFreeVariableName(this.name + \"Sampler\");\r\n\r\n // Declarations\r\n state.sharedData.blockingBlocks.push(this);\r\n state.sharedData.textureBlocks.push(this);\r\n state.sharedData.bindableBlocks.push(this);\r\n }\r\n\r\n state._emit2DSampler(this._samplerName);\r\n\r\n return this;\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n let codeString = super._dumpPropertiesCode();\r\n\r\n if (!this.texture) {\r\n return codeString;\r\n }\r\n\r\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n if (this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\") {\r\n serializationObject.texture = this.texture.serialize();\r\n }\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 if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime && serializationObject.texture.url !== undefined) {\r\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\r\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl) as Texture;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ImageSourceBlock\", ImageSourceBlock);"]}
1
+ {"version":3,"file":"imageSourceBlock.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/imageSourceBlock.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, NodeMaterialConnectionPointDirection } from '../../nodeMaterialBlockConnectionPoint';\r\nimport { NodeMaterialBlockTargets } from '../../Enums/nodeMaterialBlockTargets';\r\nimport { RegisterClass } from '../../../../Misc/typeStore';\r\nimport { Nullable } from '../../../../types';\r\nimport { Texture } from '../../../Textures/texture';\r\nimport { Engine } from '../../../../Engines/engine';\r\n\r\nimport { Effect } from '../../../effect';\r\nimport { NodeMaterial } from '../../nodeMaterial';\r\nimport { Mesh } from '../../../../Meshes/mesh';\r\nimport { Scene } from '../../../../scene';\r\nimport { NodeMaterialConnectionPointCustomObject } from '../../nodeMaterialConnectionPointCustomObject';\r\n/**\r\n * Block used to provide an image for a TextureBlock\r\n */\r\nexport class ImageSourceBlock extends NodeMaterialBlock {\r\n private _samplerName: string;\r\n protected _texture: Nullable<Texture>;\r\n /**\r\n * Gets or sets the texture associated with the node\r\n */\r\n public get texture(): Nullable<Texture> {\r\n return this._texture;\r\n }\r\n\r\n public set texture(texture: Nullable<Texture>) {\r\n if (this._texture === texture) {\r\n return;\r\n }\r\n\r\n const scene = texture?.getScene() ?? Engine.LastCreatedScene;\r\n\r\n if (!texture && scene) {\r\n scene.markAllMaterialsAsDirty(1, (mat) => {\r\n return mat.hasTexture(this._texture!);\r\n });\r\n }\r\n\r\n this._texture = texture;\r\n\r\n if (texture && scene) {\r\n scene.markAllMaterialsAsDirty(1, (mat) => {\r\n return mat.hasTexture(texture);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets the sampler name associated with this image source\r\n */\r\n public get samplerName(): string {\r\n return this._samplerName;\r\n }\r\n\r\n /**\r\n * Creates a new ImageSourceBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name, NodeMaterialBlockTargets.VertexAndFragment);\r\n\r\n this.registerOutput(\"source\", NodeMaterialBlockConnectionPointTypes.Object, NodeMaterialBlockTargets.VertexAndFragment,\r\n new NodeMaterialConnectionPointCustomObject(\"source\", this, NodeMaterialConnectionPointDirection.Output, ImageSourceBlock, \"ImageSourceBlock\"));\r\n }\r\n\r\n public bind(effect: Effect, nodeMaterial: NodeMaterial, mesh?: Mesh) {\r\n if (!this.texture) {\r\n return;\r\n }\r\n\r\n effect.setTexture(this._samplerName, this.texture);\r\n }\r\n\r\n public isReady() {\r\n if (this.texture && !this.texture.isReadyOrNotBlocking()) {\r\n return false;\r\n }\r\n\r\n return 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 \"ImageSourceBlock\";\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get source(): 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 if (state.target === NodeMaterialBlockTargets.Vertex) {\r\n this._samplerName = state._getFreeVariableName(this.name + \"Sampler\");\r\n\r\n // Declarations\r\n state.sharedData.blockingBlocks.push(this);\r\n state.sharedData.textureBlocks.push(this);\r\n state.sharedData.bindableBlocks.push(this);\r\n }\r\n\r\n state._emit2DSampler(this._samplerName);\r\n\r\n return this;\r\n }\r\n\r\n protected _dumpPropertiesCode() {\r\n let codeString = super._dumpPropertiesCode();\r\n\r\n if (!this.texture) {\r\n return codeString;\r\n }\r\n\r\n codeString += `${this._codeVariableName}.texture = new BABYLON.Texture(\"${this.texture.name}\", null, ${this.texture.noMipmap}, ${this.texture.invertY}, ${this.texture.samplingMode});\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wrapU = ${this.texture.wrapU};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wrapV = ${this.texture.wrapV};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uAng = ${this.texture.uAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vAng = ${this.texture.vAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.wAng = ${this.texture.wAng};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uOffset = ${this.texture.uOffset};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vOffset = ${this.texture.vOffset};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.uScale = ${this.texture.uScale};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.vScale = ${this.texture.vScale};\\r\\n`;\r\n codeString += `${this._codeVariableName}.texture.coordinatesMode = ${this.texture.coordinatesMode};\\r\\n`;\r\n\r\n return codeString;\r\n }\r\n\r\n public serialize(): any {\r\n let serializationObject = super.serialize();\r\n\r\n if (this.texture && !this.texture.isRenderTarget && this.texture.getClassName() !== \"VideoTexture\") {\r\n serializationObject.texture = this.texture.serialize();\r\n }\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 if (serializationObject.texture && !NodeMaterial.IgnoreTexturesAtLoadTime && serializationObject.texture.url !== undefined) {\r\n rootUrl = serializationObject.texture.url.indexOf(\"data:\") === 0 ? \"\" : rootUrl;\r\n this.texture = Texture.Parse(serializationObject.texture, scene, rootUrl) as Texture;\r\n }\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ImageSourceBlock\", ImageSourceBlock);"]}
@@ -5,3 +5,4 @@ export * from "./reflectionTextureBlock";
5
5
  export * from "./currentScreenBlock";
6
6
  export * from "./sceneDepthBlock";
7
7
  export * from "./imageSourceBlock";
8
+ export * from "./clipPlanesBlock";
@@ -5,4 +5,5 @@ export * from "./reflectionTextureBlock.js";
5
5
  export * from "./currentScreenBlock.js";
6
6
  export * from "./sceneDepthBlock.js";
7
7
  export * from "./imageSourceBlock.js";
8
+ export * from "./clipPlanesBlock.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC","sourcesContent":["\r\nexport * from \"./fogBlock\";\r\nexport * from \"./lightBlock\";\r\nexport * from \"./textureBlock\";\r\nexport * from \"./reflectionTextureBlock\";\r\nexport * from \"./currentScreenBlock\";\r\nexport * from \"./sceneDepthBlock\";\r\nexport * from \"./imageSourceBlock\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../sourceES6/core/Materials/Node/Blocks/Dual/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC","sourcesContent":["\r\nexport * from \"./fogBlock\";\r\nexport * from \"./lightBlock\";\r\nexport * from \"./textureBlock\";\r\nexport * from \"./reflectionTextureBlock\";\r\nexport * from \"./currentScreenBlock\";\r\nexport * from \"./sceneDepthBlock\";\r\nexport * from \"./imageSourceBlock\";\r\nexport * from \"./clipPlanesBlock\";"]}
@@ -212,7 +212,7 @@ var LightBlock = /** @class */ (function (_super) {
212
212
  };
213
213
  LightBlock.prototype._injectVertexCode = function (state) {
214
214
  var worldPos = this.worldPosition;
215
- var comments = "//" + this.name;
215
+ var comments = "//".concat(this.name);
216
216
  // Declaration
217
217
  if (!this.light) { // Emit for all lights
218
218
  state._emitFunctionFromInclude(state.supportUniformBuffers ? "lightVxUboDeclaration" : "lightVxFragmentDeclaration", comments, {
@@ -231,7 +231,7 @@ var LightBlock = /** @class */ (function (_super) {
231
231
  // Inject code in vertex
232
232
  var worldPosVaryingName = "v_" + worldPos.associatedVariableName;
233
233
  if (state._emitVaryingFromString(worldPosVaryingName, "vec4")) {
234
- state.compilationString += worldPosVaryingName + " = " + worldPos.associatedVariableName + ";\r\n";
234
+ state.compilationString += "".concat(worldPosVaryingName, " = ").concat(worldPos.associatedVariableName, ";\r\n");
235
235
  }
236
236
  if (this.light) {
237
237
  state.compilationString += state._emitCodeFromInclude("shadowsVertex", comments, {
@@ -242,9 +242,9 @@ var LightBlock = /** @class */ (function (_super) {
242
242
  });
243
243
  }
244
244
  else {
245
- state.compilationString += "vec4 worldPos = " + worldPos.associatedVariableName + ";\r\n";
245
+ state.compilationString += "vec4 worldPos = ".concat(worldPos.associatedVariableName, ";\r\n");
246
246
  if (this.view.isConnected) {
247
- state.compilationString += "mat4 view = " + this.view.associatedVariableName + ";\r\n";
247
+ state.compilationString += "mat4 view = ".concat(this.view.associatedVariableName, ";\r\n");
248
248
  }
249
249
  state.compilationString += state._emitCodeFromInclude("shadowsVertex", comments, {
250
250
  repeatKey: "maxSimultaneousLights"
@@ -261,7 +261,7 @@ var LightBlock = /** @class */ (function (_super) {
261
261
  // Fragment
262
262
  state.sharedData.forcedBindableBlocks.push(this);
263
263
  state.sharedData.blocksWithDefines.push(this);
264
- var comments = "//" + this.name;
264
+ var comments = "//".concat(this.name);
265
265
  var worldPos = this.worldPosition;
266
266
  state._emitFunctionFromInclude("helperFunctions", comments);
267
267
  state._emitFunctionFromInclude("lightsFragmentFunctions", comments, {
@@ -287,14 +287,14 @@ var LightBlock = /** @class */ (function (_super) {
287
287
  // Code
288
288
  if (this._lightId === 0) {
289
289
  if (state._registerTempVariable("viewDirectionW")) {
290
- state.compilationString += "vec3 viewDirectionW = normalize(" + this.cameraPosition.associatedVariableName + " - " + ("v_" + worldPos.associatedVariableName) + ".xyz);\r\n";
290
+ state.compilationString += "vec3 viewDirectionW = normalize(".concat(this.cameraPosition.associatedVariableName, " - ").concat("v_" + worldPos.associatedVariableName, ".xyz);\r\n");
291
291
  }
292
292
  state.compilationString += "lightingInfo info;\r\n";
293
293
  state.compilationString += "float shadow = 1.;\r\n";
294
- state.compilationString += "float glossiness = " + (this.glossiness.isConnected ? this.glossiness.associatedVariableName : "1.0") + " * " + (this.glossPower.isConnected ? this.glossPower.associatedVariableName : "1024.0") + ";\r\n";
294
+ state.compilationString += "float glossiness = ".concat(this.glossiness.isConnected ? this.glossiness.associatedVariableName : "1.0", " * ").concat(this.glossPower.isConnected ? this.glossPower.associatedVariableName : "1024.0", ";\r\n");
295
295
  state.compilationString += "vec3 diffuseBase = vec3(0., 0., 0.);\r\n";
296
296
  state.compilationString += "vec3 specularBase = vec3(0., 0., 0.);\r\n";
297
- state.compilationString += "vec3 normalW = " + this.worldNormal.associatedVariableName + ".xyz;\r\n";
297
+ state.compilationString += "vec3 normalW = ".concat(this.worldNormal.associatedVariableName, ".xyz;\r\n");
298
298
  }
299
299
  if (this.light) {
300
300
  state.compilationString += state._emitCodeFromInclude("lightFragment", comments, {
@@ -310,9 +310,9 @@ var LightBlock = /** @class */ (function (_super) {
310
310
  }
311
311
  var diffuseOutput = this.diffuseOutput;
312
312
  var specularOutput = this.specularOutput;
313
- state.compilationString += this._declareOutput(diffuseOutput, state) + (" = diffuseBase" + (this.diffuseColor.isConnected ? " * " + this.diffuseColor.associatedVariableName : "") + ";\r\n");
313
+ state.compilationString += this._declareOutput(diffuseOutput, state) + " = diffuseBase".concat(this.diffuseColor.isConnected ? " * " + this.diffuseColor.associatedVariableName : "", ";\r\n");
314
314
  if (specularOutput.hasEndpoints) {
315
- state.compilationString += this._declareOutput(specularOutput, state) + (" = specularBase" + (this.specularColor.isConnected ? " * " + this.specularColor.associatedVariableName : "") + ";\r\n");
315
+ state.compilationString += this._declareOutput(specularOutput, state) + " = specularBase".concat(this.specularColor.isConnected ? " * " + this.specularColor.associatedVariableName : "", ";\r\n");
316
316
  }
317
317
  if (this.shadow.hasEndpoints) {
318
318
  state.compilationString += this._declareOutput(this.shadow, state) + " = shadow;\r\n";