@babylonjs/core 7.2.1 → 7.2.3

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 (396) hide show
  1. package/Animations/animation.d.ts +2 -2
  2. package/Animations/animation.js +2 -2
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/runtimeAnimation.d.ts +1 -0
  5. package/Animations/runtimeAnimation.js +12 -3
  6. package/Animations/runtimeAnimation.js.map +1 -1
  7. package/Audio/audioEngine.js +2 -2
  8. package/Audio/audioEngine.js.map +1 -1
  9. package/Bones/boneLookController.js +3 -0
  10. package/Bones/boneLookController.js.map +1 -1
  11. package/Buffers/buffer.d.ts +5 -5
  12. package/Buffers/buffer.js.map +1 -1
  13. package/Buffers/storageBuffer.d.ts +2 -2
  14. package/Buffers/storageBuffer.js.map +1 -1
  15. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  16. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  17. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  18. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  19. package/Compute/computeEffect.d.ts +3 -3
  20. package/Compute/computeEffect.js.map +1 -1
  21. package/Compute/computeShader.d.ts +10 -2
  22. package/Compute/computeShader.js +53 -35
  23. package/Compute/computeShader.js.map +1 -1
  24. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +2 -2
  25. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  26. package/DeviceInput/internalDeviceSourceManager.d.ts +4 -4
  27. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  28. package/DeviceInput/webDeviceInputSystem.d.ts +2 -2
  29. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  30. package/Engines/AbstractEngine/abstractEngine.alpha.d.ts +10 -0
  31. package/Engines/AbstractEngine/abstractEngine.alpha.js +29 -0
  32. package/Engines/AbstractEngine/abstractEngine.alpha.js.map +1 -0
  33. package/Engines/AbstractEngine/abstractEngine.cubeTexture.d.ts +17 -0
  34. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +138 -0
  35. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -0
  36. package/Engines/AbstractEngine/abstractEngine.dom.d.ts +61 -0
  37. package/Engines/AbstractEngine/abstractEngine.dom.js +27 -0
  38. package/Engines/AbstractEngine/abstractEngine.dom.js.map +1 -0
  39. package/Engines/AbstractEngine/abstractEngine.loadingScreen.d.ts +30 -0
  40. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js +48 -0
  41. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js.map +1 -0
  42. package/Engines/AbstractEngine/abstractEngine.query.d.ts +122 -0
  43. package/Engines/AbstractEngine/abstractEngine.query.js +175 -0
  44. package/Engines/AbstractEngine/abstractEngine.query.js.map +1 -0
  45. package/Engines/AbstractEngine/abstractEngine.renderPass.d.ts +26 -0
  46. package/Engines/AbstractEngine/abstractEngine.renderPass.js +29 -0
  47. package/Engines/AbstractEngine/abstractEngine.renderPass.js.map +1 -0
  48. package/Engines/AbstractEngine/abstractEngine.states.d.ts +162 -0
  49. package/Engines/AbstractEngine/abstractEngine.states.js +105 -0
  50. package/Engines/AbstractEngine/abstractEngine.states.js.map +1 -0
  51. package/Engines/AbstractEngine/abstractEngine.texture.d.ts +16 -0
  52. package/Engines/AbstractEngine/abstractEngine.texture.js +11 -0
  53. package/Engines/AbstractEngine/abstractEngine.texture.js.map +1 -0
  54. package/Engines/AbstractEngine/index.d.ts +8 -0
  55. package/Engines/AbstractEngine/index.js +10 -0
  56. package/Engines/AbstractEngine/index.js.map +1 -0
  57. package/Engines/Extensions/engine.alpha.d.ts +0 -24
  58. package/Engines/Extensions/engine.alpha.js +0 -35
  59. package/Engines/Extensions/engine.alpha.js.map +1 -1
  60. package/Engines/Extensions/engine.computeShader.d.ts +15 -2
  61. package/Engines/Extensions/engine.computeShader.js +5 -1
  62. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  63. package/Engines/Extensions/engine.cubeTexture.d.ts +0 -8
  64. package/Engines/Extensions/engine.cubeTexture.js +2 -135
  65. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  66. package/Engines/Extensions/engine.debugging.d.ts +2 -2
  67. package/Engines/Extensions/engine.debugging.js +5 -5
  68. package/Engines/Extensions/engine.debugging.js.map +1 -1
  69. package/Engines/Extensions/engine.dynamicTexture.js +3 -2
  70. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  71. package/Engines/Extensions/engine.multiview.js.map +1 -1
  72. package/Engines/Extensions/engine.query.d.ts +5 -120
  73. package/Engines/Extensions/engine.query.js +14 -150
  74. package/Engines/Extensions/engine.query.js.map +1 -1
  75. package/Engines/Extensions/engine.renderTarget.js +0 -9
  76. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  77. package/Engines/Extensions/engine.views.d.ts +3 -2
  78. package/Engines/Extensions/engine.views.js.map +1 -1
  79. package/Engines/Processors/iShaderProcessor.d.ts +2 -2
  80. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  81. package/Engines/Processors/shaderProcessor.d.ts +3 -3
  82. package/Engines/Processors/shaderProcessor.js.map +1 -1
  83. package/Engines/WebGL/webGLRenderTargetWrapper.js +12 -9
  84. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  85. package/Engines/WebGL/webGLShaderProcessors.d.ts +2 -2
  86. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.alpha.d.ts +35 -0
  88. package/Engines/WebGPU/Extensions/engine.alpha.js +4 -4
  89. package/Engines/WebGPU/Extensions/engine.alpha.js.map +1 -1
  90. package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +9 -0
  91. package/Engines/WebGPU/Extensions/engine.computeShader.js +13 -2
  92. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  93. package/Engines/WebGPU/Extensions/engine.cubeTexture.d.ts +78 -1
  94. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  95. package/Engines/WebGPU/Extensions/engine.dynamicTexture.d.ts +27 -1
  96. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -3
  97. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  98. package/Engines/WebGPU/Extensions/engine.externalTexture.d.ts +16 -0
  99. package/Engines/WebGPU/Extensions/engine.externalTexture.js.map +1 -1
  100. package/Engines/WebGPU/Extensions/engine.multiRender.d.ts +55 -1
  101. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  102. package/Engines/WebGPU/Extensions/engine.query.d.ts +1 -1
  103. package/Engines/WebGPU/Extensions/engine.query.js +1 -0
  104. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  105. package/Engines/WebGPU/Extensions/engine.rawTexture.d.ts +185 -1
  106. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  107. package/Engines/WebGPU/Extensions/engine.readTexture.d.ts +10 -1
  108. package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
  109. package/Engines/WebGPU/Extensions/engine.renderTarget.d.ts +38 -1
  110. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  111. package/Engines/WebGPU/Extensions/engine.renderTargetCube.d.ts +13 -1
  112. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  113. package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +38 -1
  114. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  115. package/Engines/WebGPU/Extensions/engine.textureSampler.d.ts +10 -0
  116. package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
  117. package/Engines/WebGPU/Extensions/engine.videoTexture.d.ts +14 -1
  118. package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
  119. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +2 -2
  120. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  121. package/Engines/abstractEngine.d.ts +1688 -0
  122. package/Engines/abstractEngine.js +1354 -0
  123. package/Engines/abstractEngine.js.map +1 -0
  124. package/Engines/engine.common.d.ts +39 -0
  125. package/Engines/engine.common.js +226 -0
  126. package/Engines/engine.common.js.map +1 -0
  127. package/Engines/engine.d.ts +40 -447
  128. package/Engines/engine.js +64 -810
  129. package/Engines/engine.js.map +1 -1
  130. package/Engines/engineFactory.d.ts +2 -2
  131. package/Engines/engineFactory.js.map +1 -1
  132. package/Engines/engineStore.d.ts +4 -4
  133. package/Engines/engineStore.js.map +1 -1
  134. package/Engines/index.d.ts +3 -0
  135. package/Engines/index.js +3 -0
  136. package/Engines/index.js.map +1 -1
  137. package/Engines/nativeEngine.d.ts +1 -1
  138. package/Engines/nativeEngine.js +2 -1
  139. package/Engines/nativeEngine.js.map +1 -1
  140. package/Engines/nullEngine.d.ts +2 -2
  141. package/Engines/nullEngine.js +2 -3
  142. package/Engines/nullEngine.js.map +1 -1
  143. package/Engines/renderTargetWrapper.d.ts +3 -3
  144. package/Engines/renderTargetWrapper.js.map +1 -1
  145. package/Engines/thinEngine.d.ts +35 -591
  146. package/Engines/thinEngine.js +84 -1134
  147. package/Engines/thinEngine.js.map +1 -1
  148. package/Engines/webgpuEngine.d.ts +149 -109
  149. package/Engines/webgpuEngine.js +249 -161
  150. package/Engines/webgpuEngine.js.map +1 -1
  151. package/Instrumentation/engineInstrumentation.d.ts +5 -4
  152. package/Instrumentation/engineInstrumentation.js.map +1 -1
  153. package/Layers/effectLayer.d.ts +2 -2
  154. package/Layers/effectLayer.js +3 -3
  155. package/Layers/effectLayer.js.map +1 -1
  156. package/Layers/effectLayerSceneComponent.js.map +1 -1
  157. package/Layers/glowLayer.js +3 -3
  158. package/Layers/glowLayer.js.map +1 -1
  159. package/Layers/highlightLayer.js +3 -3
  160. package/Layers/highlightLayer.js.map +1 -1
  161. package/Layers/layerSceneComponent.js.map +1 -1
  162. package/Loading/loadingScreen.js +2 -2
  163. package/Loading/loadingScreen.js.map +1 -1
  164. package/Loading/sceneLoader.d.ts +3 -3
  165. package/Loading/sceneLoader.js +1 -1
  166. package/Loading/sceneLoader.js.map +1 -1
  167. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  168. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +0 -1
  169. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  170. package/Materials/Node/Blocks/matrixTransposeBlock.js +1 -1
  171. package/Materials/Node/Blocks/matrixTransposeBlock.js.map +1 -1
  172. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +2 -3
  173. package/Materials/PBR/pbrSubSurfaceConfiguration.js +8 -12
  174. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  175. package/Materials/Textures/Filtering/hdrFiltering.d.ts +2 -2
  176. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  177. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  178. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  179. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -0
  180. package/Materials/Textures/MultiviewRenderTarget.js +1 -0
  181. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  182. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  183. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  184. package/Materials/Textures/baseTexture.d.ts +3 -3
  185. package/Materials/Textures/baseTexture.js.map +1 -1
  186. package/Materials/Textures/colorGradingTexture.d.ts +2 -2
  187. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  188. package/Materials/Textures/cubeTexture.d.ts +3 -2
  189. package/Materials/Textures/cubeTexture.js +1 -0
  190. package/Materials/Textures/cubeTexture.js.map +1 -1
  191. package/Materials/Textures/hdrCubeTexture.d.ts +2 -2
  192. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  193. package/Materials/Textures/htmlElementTexture.d.ts +2 -2
  194. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  195. package/Materials/Textures/internalTexture.d.ts +3 -3
  196. package/Materials/Textures/internalTexture.js.map +1 -1
  197. package/Materials/Textures/rawTexture.d.ts +10 -10
  198. package/Materials/Textures/rawTexture.js.map +1 -1
  199. package/Materials/Textures/renderTargetTexture.d.ts +4 -4
  200. package/Materials/Textures/renderTargetTexture.js +4 -4
  201. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  202. package/Materials/Textures/texture.d.ts +2 -2
  203. package/Materials/Textures/texture.js.map +1 -1
  204. package/Materials/Textures/thinTexture.d.ts +3 -3
  205. package/Materials/Textures/thinTexture.js +1 -1
  206. package/Materials/Textures/thinTexture.js.map +1 -1
  207. package/Materials/drawWrapper.d.ts +2 -3
  208. package/Materials/drawWrapper.functions.d.ts +8 -0
  209. package/Materials/drawWrapper.functions.js +9 -0
  210. package/Materials/drawWrapper.functions.js.map +1 -0
  211. package/Materials/drawWrapper.js +0 -3
  212. package/Materials/drawWrapper.js.map +1 -1
  213. package/Materials/effect.d.ts +4 -5
  214. package/Materials/effect.js.map +1 -1
  215. package/Materials/effectRenderer.d.ts +4 -4
  216. package/Materials/effectRenderer.js.map +1 -1
  217. package/Materials/index.d.ts +1 -0
  218. package/Materials/index.js +1 -0
  219. package/Materials/index.js.map +1 -1
  220. package/Materials/materialHelper.functions.d.ts +2 -2
  221. package/Materials/materialHelper.functions.js.map +1 -1
  222. package/Materials/materialPluginBase.d.ts +4 -4
  223. package/Materials/materialPluginBase.js.map +1 -1
  224. package/Materials/materialPluginManager.d.ts +2 -2
  225. package/Materials/materialPluginManager.js.map +1 -1
  226. package/Materials/meshDebugPluginMaterial.js +1 -1
  227. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  228. package/Materials/uniformBuffer.d.ts +2 -2
  229. package/Materials/uniformBuffer.js.map +1 -1
  230. package/Meshes/Builders/greasedLineBuilder.d.ts +6 -0
  231. package/Meshes/Builders/greasedLineBuilder.js +15 -8
  232. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  233. package/Meshes/Compression/dracoCompression.d.ts +19 -1
  234. package/Meshes/Compression/dracoCompression.js +11 -4
  235. package/Meshes/Compression/dracoCompression.js.map +1 -1
  236. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -1
  237. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  238. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  239. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  240. package/Meshes/GreasedLine/greasedLineMesh.js +1 -1
  241. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  242. package/Meshes/geometry.d.ts +2 -2
  243. package/Meshes/geometry.js +3 -2
  244. package/Meshes/geometry.js.map +1 -1
  245. package/Meshes/instancedMesh.js.map +1 -1
  246. package/Meshes/mesh.d.ts +3 -3
  247. package/Meshes/mesh.js.map +1 -1
  248. package/Meshes/subMesh.d.ts +2 -2
  249. package/Meshes/subMesh.js.map +1 -1
  250. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  251. package/Misc/copyTextureToTexture.d.ts +2 -2
  252. package/Misc/copyTextureToTexture.js.map +1 -1
  253. package/Misc/dds.d.ts +3 -2
  254. package/Misc/dds.js +2 -1
  255. package/Misc/dds.js.map +1 -1
  256. package/Misc/dumpTools.d.ts +2 -2
  257. package/Misc/dumpTools.js.map +1 -1
  258. package/Misc/fileTools.js +3 -3
  259. package/Misc/fileTools.js.map +1 -1
  260. package/Misc/khronosTextureContainer2.d.ts +8 -2
  261. package/Misc/khronosTextureContainer2.js +3 -2
  262. package/Misc/khronosTextureContainer2.js.map +1 -1
  263. package/Misc/minMaxReducer.d.ts +2 -2
  264. package/Misc/minMaxReducer.js.map +1 -1
  265. package/Misc/textureTools.js.map +1 -1
  266. package/Misc/tools.d.ts +7 -7
  267. package/Misc/tools.functions.d.ts +26 -0
  268. package/Misc/tools.functions.js +62 -0
  269. package/Misc/tools.functions.js.map +1 -1
  270. package/Misc/tools.js.map +1 -1
  271. package/Misc/videoRecorder.d.ts +3 -3
  272. package/Misc/videoRecorder.js.map +1 -1
  273. package/Particles/EmitterTypes/cylinderParticleEmitter.js +2 -2
  274. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  275. package/Particles/baseParticleSystem.d.ts +2 -2
  276. package/Particles/baseParticleSystem.js.map +1 -1
  277. package/Particles/computeShaderParticleSystem.d.ts +2 -2
  278. package/Particles/computeShaderParticleSystem.js.map +1 -1
  279. package/Particles/gpuParticleSystem.d.ts +3 -3
  280. package/Particles/gpuParticleSystem.js +2 -2
  281. package/Particles/gpuParticleSystem.js.map +1 -1
  282. package/Particles/particle.js +1 -1
  283. package/Particles/particle.js.map +1 -1
  284. package/Particles/particleSystem.d.ts +3 -3
  285. package/Particles/particleSystem.js +3 -3
  286. package/Particles/particleSystem.js.map +1 -1
  287. package/Particles/particleSystemComponent.d.ts +2 -2
  288. package/Particles/particleSystemComponent.js +2 -2
  289. package/Particles/particleSystemComponent.js.map +1 -1
  290. package/Particles/subEmitter.d.ts +3 -3
  291. package/Particles/subEmitter.js.map +1 -1
  292. package/Particles/thinParticleSystem.d.ts +2 -2
  293. package/Particles/thinParticleSystem.js.map +1 -1
  294. package/Physics/v2/physicsBody.js +3 -3
  295. package/Physics/v2/physicsBody.js.map +1 -1
  296. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  297. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +2 -2
  298. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  299. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +2 -2
  300. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  301. package/PostProcesses/blackAndWhitePostProcess.d.ts +2 -2
  302. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  303. package/PostProcesses/bloomMergePostProcess.d.ts +2 -2
  304. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  305. package/PostProcesses/blurPostProcess.d.ts +2 -2
  306. package/PostProcesses/blurPostProcess.js.map +1 -1
  307. package/PostProcesses/chromaticAberrationPostProcess.d.ts +2 -2
  308. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  309. package/PostProcesses/circleOfConfusionPostProcess.d.ts +2 -2
  310. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  311. package/PostProcesses/colorCorrectionPostProcess.d.ts +2 -2
  312. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  313. package/PostProcesses/convolutionPostProcess.d.ts +2 -2
  314. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  315. package/PostProcesses/depthOfFieldBlurPostProcess.d.ts +2 -2
  316. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  317. package/PostProcesses/depthOfFieldEffect.js +1 -1
  318. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  319. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +2 -2
  320. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  321. package/PostProcesses/displayPassPostProcess.d.ts +2 -2
  322. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  323. package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
  324. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  325. package/PostProcesses/filterPostProcess.d.ts +2 -2
  326. package/PostProcesses/filterPostProcess.js.map +1 -1
  327. package/PostProcesses/fxaaPostProcess.d.ts +2 -2
  328. package/PostProcesses/fxaaPostProcess.js +2 -2
  329. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  330. package/PostProcesses/grainPostProcess.d.ts +2 -2
  331. package/PostProcesses/grainPostProcess.js.map +1 -1
  332. package/PostProcesses/imageProcessingPostProcess.d.ts +2 -2
  333. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  334. package/PostProcesses/motionBlurPostProcess.d.ts +2 -2
  335. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  336. package/PostProcesses/passPostProcess.d.ts +3 -3
  337. package/PostProcesses/passPostProcess.js +2 -2
  338. package/PostProcesses/passPostProcess.js.map +1 -1
  339. package/PostProcesses/postProcess.d.ts +4 -4
  340. package/PostProcesses/postProcess.js +3 -3
  341. package/PostProcesses/postProcess.js.map +1 -1
  342. package/PostProcesses/refractionPostProcess.d.ts +2 -2
  343. package/PostProcesses/refractionPostProcess.js.map +1 -1
  344. package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +2 -2
  345. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  346. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +2 -2
  347. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  348. package/PostProcesses/sharpenPostProcess.d.ts +2 -2
  349. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  350. package/PostProcesses/subSurfaceScatteringPostProcess.d.ts +2 -2
  351. package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
  352. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +2 -2
  353. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  354. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  355. package/Rendering/depthPeelingRenderer.js.map +1 -1
  356. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  357. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.d.ts +2 -2
  358. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  359. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +2 -2
  360. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  361. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +2 -2
  362. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  363. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  364. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  365. package/Rendering/geometryBufferRenderer.js +24 -18
  366. package/Rendering/geometryBufferRenderer.js.map +1 -1
  367. package/Rendering/outlineRenderer.js.map +1 -1
  368. package/Rendering/prePassRenderer.js.map +1 -1
  369. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +3 -5
  370. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  371. package/Sprites/spriteRenderer.d.ts +2 -2
  372. package/Sprites/spriteRenderer.js.map +1 -1
  373. package/XR/features/WebXRDepthSensing.js.map +1 -1
  374. package/XR/features/WebXRImageTracking.js.map +1 -1
  375. package/XR/features/WebXRLayers.d.ts +2 -2
  376. package/XR/features/WebXRLayers.js.map +1 -1
  377. package/XR/features/WebXRLightEstimation.js.map +1 -1
  378. package/XR/features/WebXRRawCameraAccess.d.ts +1 -1
  379. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  380. package/XR/features/WebXRSpaceWarp.js +1 -3
  381. package/XR/features/WebXRSpaceWarp.js.map +1 -1
  382. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  383. package/XR/webXRExperienceHelper.js.map +1 -1
  384. package/XR/webXRManagedOutputCanvas.d.ts +2 -2
  385. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  386. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  387. package/XR/webXRSessionManager.js.map +1 -1
  388. package/assetContainer.js.map +1 -1
  389. package/assets/Draco/draco_decoder.js +34 -0
  390. package/assets/Draco/draco_decoder.wasm +0 -0
  391. package/assets/Draco/draco_wasm_wrapper.js +117 -0
  392. package/node.d.ts +2 -2
  393. package/node.js.map +1 -1
  394. package/package.json +1 -1
  395. package/scene.d.ts +3 -3
  396. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"greasedLineMesh.js","sourceRoot":"","sources":["../../../../../dev/core/src/Meshes/GreasedLine/greasedLineMesh.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene } from \"../../scene\";\r\nimport type { Matrix } from \"../../Maths/math.vector\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Mesh } from \"../mesh\";\r\nimport type { Ray, TrianglePickingPredicate } from \"../../Culling/ray\";\r\nimport { Buffer, VertexBuffer } from \"../../Buffers/buffer\";\r\nimport { PickingInfo } from \"../../Collisions/pickingInfo\";\r\nimport type { Nullable, FloatArray } from \"../../types\";\r\nimport type { Node } from \"../../node\";\r\nimport { DeepCopier } from \"../../Misc/deepCopier\";\r\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools\";\r\nimport type { GreasedLineMeshOptions } from \"./greasedLineBaseMesh\";\r\nimport { GreasedLineBaseMesh } from \"./greasedLineBaseMesh\";\r\nimport type { VertexData } from \"../mesh.vertexData\";\r\n\r\nMesh._GreasedLineMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return GreasedLineMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * GreasedLineMesh\r\n * Use the GreasedLineBuilder.CreateGreasedLine function to create an instance of this class.\r\n */\r\nexport class GreasedLineMesh extends GreasedLineBaseMesh {\r\n private _previousAndSide: FloatArray;\r\n private _nextAndCounters: FloatArray;\r\n\r\n private static _V_START = new Vector3();\r\n private static _V_END = new Vector3();\r\n private static _V_OFFSET_START = new Vector3();\r\n private static _V_OFFSET_END = new Vector3();\r\n\r\n /**\r\n * Treshold used to pick the mesh\r\n */\r\n public intersectionThreshold = 0.1;\r\n\r\n /**\r\n * GreasedLineMesh\r\n * @param name name of the mesh\r\n * @param scene the scene\r\n * @param _options mesh options\r\n */\r\n constructor(\r\n public readonly name: string,\r\n scene: Scene,\r\n _options: GreasedLineMeshOptions\r\n ) {\r\n super(name, scene, _options);\r\n\r\n this._previousAndSide = [];\r\n this._nextAndCounters = [];\r\n\r\n if (_options.points) {\r\n this.addPoints(GreasedLineTools.ConvertPoints(_options.points));\r\n }\r\n }\r\n\r\n /**\r\n * \"GreasedLineMesh\"\r\n * @returns \"GreasedLineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"GreasedLineMesh\";\r\n }\r\n\r\n protected _updateColorPointers() {\r\n if (this._options.colorPointers) {\r\n return;\r\n }\r\n\r\n let colorPointer = 0;\r\n this._colorPointers = [];\r\n this._points.forEach((p) => {\r\n for (let jj = 0; jj < p.length; jj += 3) {\r\n this._colorPointers.push(colorPointer);\r\n this._colorPointers.push(colorPointer++);\r\n }\r\n });\r\n }\r\n\r\n protected _updateWidths(): void {\r\n super._updateWidthsWithValue(0);\r\n }\r\n\r\n protected _setPoints(points: number[][]) {\r\n this._points = points;\r\n this._options.points = points;\r\n\r\n this._initGreasedLine();\r\n\r\n let indiceOffset = 0;\r\n let vertexPositionsLen = 0,\r\n indicesLength = 0,\r\n uvLength = 0,\r\n previousAndSideLength = 0;\r\n points.forEach((p) => {\r\n vertexPositionsLen += p.length * 2;\r\n indicesLength += (p.length - 3) * 2;\r\n uvLength += (p.length * 4) / 3;\r\n previousAndSideLength += (p.length * 8) / 3;\r\n });\r\n const vertexPositionsArr = new Float32Array(vertexPositionsLen);\r\n const indicesArr = vertexPositionsLen > 65535 ? new Uint32Array(indicesLength) : new Uint16Array(indicesLength);\r\n const uvArr = new Float32Array(uvLength);\r\n const previousAndSide = new Float32Array(previousAndSideLength);\r\n // it's the same length here\r\n const nextAndCounters = new Float32Array(previousAndSideLength);\r\n let vertexPositionsOffset = 0,\r\n indicesOffset = 0,\r\n uvOffset = 0,\r\n previousAndSideOffset = 0,\r\n nextAndCountersOffset = 0;\r\n\r\n points.forEach((p) => {\r\n const lengthArray = GreasedLineTools.GetLineLengthArray(p);\r\n const totalLength = lengthArray[lengthArray.length - 1];\r\n for (let j = 0, jj = 0; jj < p.length; j++, jj += 3) {\r\n const baseOffset = vertexPositionsOffset + jj * 2;\r\n vertexPositionsArr[baseOffset + 0] = p[jj + 0];\r\n vertexPositionsArr[baseOffset + 1] = p[jj + 1];\r\n vertexPositionsArr[baseOffset + 2] = p[jj + 2];\r\n vertexPositionsArr[baseOffset + 3] = p[jj + 0];\r\n vertexPositionsArr[baseOffset + 4] = p[jj + 1];\r\n vertexPositionsArr[baseOffset + 5] = p[jj + 2];\r\n\r\n if (jj < p.length - 3) {\r\n const n = j * 2 + indiceOffset;\r\n const baseIndicesOffset = indicesOffset + jj * 2;\r\n indicesArr[baseIndicesOffset + 0] = n;\r\n indicesArr[baseIndicesOffset + 1] = n + 1;\r\n indicesArr[baseIndicesOffset + 2] = n + 2;\r\n indicesArr[baseIndicesOffset + 3] = n + 2;\r\n indicesArr[baseIndicesOffset + 4] = n + 1;\r\n indicesArr[baseIndicesOffset + 5] = n + 3;\r\n }\r\n }\r\n\r\n indiceOffset += (p.length / 3) * 2;\r\n const currVertexPositionsOffsetLength = p.length * 2;\r\n const positions = vertexPositionsArr.subarray(vertexPositionsOffset, vertexPositionsOffset + currVertexPositionsOffsetLength);\r\n vertexPositionsOffset += currVertexPositionsOffsetLength;\r\n indicesOffset += (p.length - 3) * 2;\r\n\r\n const previous = new Float32Array(positions.length);\r\n const next = new Float32Array(positions.length);\r\n const l = positions.length / 6;\r\n let v;\r\n if (GreasedLineMesh._CompareV3(0, l - 1, positions)) {\r\n v = positions.subarray((l - 2) * 6, (l - 1) * 6);\r\n } else {\r\n v = positions.subarray(0, 6);\r\n }\r\n previous.set(v);\r\n previous.set(positions.subarray(0, positions.length - 6), 6);\r\n next.set(positions.subarray(6));\r\n if (GreasedLineMesh._CompareV3(l - 1, 0, positions)) {\r\n v = positions.subarray(6, 12);\r\n } else {\r\n v = positions.subarray((l - 1) * 6, l * 6);\r\n }\r\n next.set(v, next.length - 6);\r\n\r\n for (let i = 0, sidesLength = positions.length / 3; i < sidesLength; i++) {\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3];\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 1];\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 2];\r\n // side[i] = i % 2 ? -1 : 1;\r\n // side[i] = 1 - ((i & 1) << 1);\r\n previousAndSide[previousAndSideOffset++] = 1 - ((i & 1) << 1);\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3];\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 1];\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 2];\r\n // counters[i] = lengthArray[i >> 1] / totalLength;\r\n nextAndCounters[nextAndCountersOffset++] = lengthArray[i >> 1] / totalLength;\r\n }\r\n if (this._options.uvs) {\r\n for (let i = 0; i < this._options.uvs.length; i++) {\r\n uvArr[uvOffset++] = this._options.uvs[i];\r\n }\r\n } else {\r\n for (let j = 0; j < l; j++) {\r\n // uvs\r\n const uvOffsetBase = uvOffset + j * 4;\r\n uvArr[uvOffsetBase + 0] = j / (l - 1);\r\n uvArr[uvOffsetBase + 1] = 0;\r\n uvArr[uvOffsetBase + 2] = j / (l - 1);\r\n uvArr[uvOffsetBase + 3] = 1;\r\n }\r\n uvOffset += l * 4;\r\n }\r\n });\r\n this._vertexPositions = vertexPositionsArr;\r\n this._indices = indicesArr;\r\n this._uvs = uvArr;\r\n this._previousAndSide = previousAndSide;\r\n this._nextAndCounters = nextAndCounters;\r\n\r\n if (!this._lazy) {\r\n if (!this._options.colorPointers) {\r\n this._updateColorPointers();\r\n }\r\n this._createVertexBuffers();\r\n this.refreshBoundingInfo();\r\n }\r\n }\r\n\r\n /**\r\n * Clones the GreasedLineMesh.\r\n * @param name new line name\r\n * @param newParent new parent node\r\n * @returns cloned line\r\n */\r\n public clone(name: string = `${this.name}-cloned`, newParent?: Nullable<Node>) {\r\n const lineOptions = this._createLineOptions();\r\n const deepCopiedLineOptions = {};\r\n DeepCopier.DeepCopy(lineOptions, deepCopiedLineOptions, [\"instance\"], undefined, true);\r\n\r\n const cloned = new GreasedLineMesh(name, this._scene, <GreasedLineMeshOptions>deepCopiedLineOptions);\r\n if (newParent) {\r\n cloned.parent = newParent;\r\n }\r\n\r\n cloned.material = this.material;\r\n\r\n return cloned;\r\n }\r\n\r\n /**\r\n * Serializes this GreasedLineMesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.type = this.getClassName();\r\n\r\n serializationObject.lineOptions = this._createLineOptions();\r\n }\r\n\r\n /**\r\n * Parses a serialized GreasedLineMesh\r\n * @param parsedMesh the serialized GreasedLineMesh\r\n * @param scene the scene to create the GreasedLineMesh in\r\n * @returns the created GreasedLineMesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): Mesh {\r\n const lineOptions = <GreasedLineMeshOptions>parsedMesh.lineOptions;\r\n const name = <string>parsedMesh.name;\r\n const result = new GreasedLineMesh(name, scene, lineOptions);\r\n return result;\r\n }\r\n\r\n protected _initGreasedLine() {\r\n super._initGreasedLine();\r\n\r\n this._previousAndSide = [];\r\n this._nextAndCounters = [];\r\n }\r\n /**\r\n * Checks whether a ray is intersecting this GreasedLineMesh\r\n * @param ray ray to check the intersection of this mesh with\r\n * @param fastCheck not supported\r\n * @param trianglePredicate not supported\r\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\r\n * @param worldToUse not supported\r\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\r\n * @returns the picking info\r\n */\r\n public intersects(\r\n ray: Ray,\r\n fastCheck?: boolean,\r\n trianglePredicate?: TrianglePickingPredicate,\r\n onlyBoundingInfo = false,\r\n worldToUse?: Matrix,\r\n skipBoundingInfo = false\r\n ): PickingInfo {\r\n const pickingInfo = new PickingInfo();\r\n const intersections = this.findAllIntersections(ray, fastCheck, trianglePredicate, onlyBoundingInfo, worldToUse, skipBoundingInfo, true);\r\n if (intersections?.length === 1) {\r\n const intersection = intersections[0];\r\n pickingInfo.hit = true;\r\n pickingInfo.distance = intersection.distance;\r\n pickingInfo.ray = ray;\r\n pickingInfo.pickedMesh = this;\r\n pickingInfo.pickedPoint = intersection.point;\r\n }\r\n return pickingInfo;\r\n }\r\n\r\n /**\r\n * Gets all intersections of a ray and the line\r\n * @param ray Ray to check the intersection of this mesh with\r\n * @param _fastCheck not supported\r\n * @param _trianglePredicate not supported\r\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\r\n * @param _worldToUse not supported\r\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\r\n * @param firstOnly If true, the first and only intersection is immediatelly returned if found\r\n * @returns intersection(s)\r\n */\r\n public findAllIntersections(\r\n ray: Ray,\r\n _fastCheck?: boolean,\r\n _trianglePredicate?: TrianglePickingPredicate,\r\n onlyBoundingInfo = false,\r\n _worldToUse?: Matrix,\r\n skipBoundingInfo = false,\r\n firstOnly = false\r\n ): { distance: number; point: Vector3 }[] | undefined {\r\n if (onlyBoundingInfo && !skipBoundingInfo && ray.intersectsSphere(this._boundingSphere, this.intersectionThreshold) === false) {\r\n return;\r\n }\r\n\r\n const indices = this.getIndices();\r\n const positions = this.getVerticesData(VertexBuffer.PositionKind);\r\n const widths = this._widths;\r\n\r\n const lineWidth = this.greasedLineMaterial?.width ?? 1;\r\n\r\n const intersects = [];\r\n if (indices && positions && widths) {\r\n let i = 0,\r\n l = 0;\r\n for (i = 0, l = indices.length - 1; i < l; i += 3) {\r\n const a = indices[i];\r\n const b = indices[i + 1];\r\n\r\n GreasedLineMesh._V_START.fromArray(positions, a * 3);\r\n GreasedLineMesh._V_END.fromArray(positions, b * 3);\r\n\r\n if (this._offsets) {\r\n GreasedLineMesh._V_OFFSET_START.fromArray(this._offsets, a * 3);\r\n GreasedLineMesh._V_OFFSET_END.fromArray(this._offsets, b * 3);\r\n GreasedLineMesh._V_START.addInPlace(GreasedLineMesh._V_OFFSET_START);\r\n GreasedLineMesh._V_END.addInPlace(GreasedLineMesh._V_OFFSET_END);\r\n }\r\n\r\n const iFloored = Math.floor(i / 3);\r\n const width = widths[iFloored] !== undefined ? widths[iFloored] : 1;\r\n const precision = (this.intersectionThreshold * (lineWidth * width)) / 2;\r\n\r\n const distance = ray.intersectionSegment(GreasedLineMesh._V_START, GreasedLineMesh._V_END, precision);\r\n if (distance !== -1) {\r\n intersects.push({\r\n distance: distance,\r\n point: ray.direction.normalize().multiplyByFloats(distance, distance, distance).add(ray.origin),\r\n });\r\n if (firstOnly) {\r\n return intersects;\r\n }\r\n }\r\n }\r\n i = l;\r\n }\r\n\r\n return intersects;\r\n }\r\n\r\n private get _boundingSphere() {\r\n return this.getBoundingInfo().boundingSphere;\r\n }\r\n\r\n private static _CompareV3(positionIdx1: number, positionIdx2: number, positions: number[] | Float32Array) {\r\n const arrayIdx1 = positionIdx1 * 6;\r\n const arrayIdx2 = positionIdx2 * 6;\r\n return positions[arrayIdx1] === positions[arrayIdx2] && positions[arrayIdx1 + 1] === positions[arrayIdx2 + 1] && positions[arrayIdx1 + 2] === positions[arrayIdx2 + 2];\r\n }\r\n\r\n protected _createVertexBuffers() {\r\n const vertexData: VertexData = super._createVertexBuffers();\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n const previousAndSideBuffer = new Buffer(engine, this._previousAndSide, false, 4);\r\n this.setVerticesBuffer(previousAndSideBuffer.createVertexBuffer(\"grl_previousAndSide\", 0, 4));\r\n\r\n const nextAndCountersBuffer = new Buffer(engine, this._nextAndCounters, false, 4);\r\n this.setVerticesBuffer(nextAndCountersBuffer.createVertexBuffer(\"grl_nextAndCounters\", 0, 4));\r\n\r\n const widthBuffer = new Buffer(engine, this._widths, this._updatable, 1);\r\n this.setVerticesBuffer(widthBuffer.createVertexBuffer(\"grl_widths\", 0, 1));\r\n this._widthsBuffer = widthBuffer;\r\n\r\n const colorPointersBuffer = new Buffer(engine, this._colorPointers, this._updatable, 1);\r\n this.setVerticesBuffer(colorPointersBuffer.createVertexBuffer(\"grl_colorPointers\", 0, 1));\r\n this._colorPointersBuffer = colorPointersBuffer;\r\n\r\n return vertexData;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"greasedLineMesh.js","sourceRoot":"","sources":["../../../../../dev/core/src/Meshes/GreasedLine/greasedLineMesh.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene } from \"../../scene\";\r\nimport type { Matrix } from \"../../Maths/math.vector\";\r\nimport { Vector3 } from \"../../Maths/math.vector\";\r\nimport { Mesh } from \"../mesh\";\r\nimport type { Ray, TrianglePickingPredicate } from \"../../Culling/ray\";\r\nimport { Buffer, VertexBuffer } from \"../../Buffers/buffer\";\r\nimport { PickingInfo } from \"../../Collisions/pickingInfo\";\r\nimport type { Nullable, FloatArray } from \"../../types\";\r\nimport type { Node } from \"../../node\";\r\nimport { DeepCopier } from \"../../Misc/deepCopier\";\r\nimport { GreasedLineTools } from \"../../Misc/greasedLineTools\";\r\nimport type { GreasedLineMeshOptions } from \"./greasedLineBaseMesh\";\r\nimport { GreasedLineBaseMesh } from \"./greasedLineBaseMesh\";\r\nimport type { VertexData } from \"../mesh.vertexData\";\r\n\r\nMesh._GreasedLineMeshParser = (parsedMesh: any, scene: Scene): Mesh => {\r\n return GreasedLineMesh.Parse(parsedMesh, scene);\r\n};\r\n\r\n/**\r\n * GreasedLineMesh\r\n * Use the GreasedLineBuilder.CreateGreasedLine function to create an instance of this class.\r\n */\r\nexport class GreasedLineMesh extends GreasedLineBaseMesh {\r\n private _previousAndSide: FloatArray;\r\n private _nextAndCounters: FloatArray;\r\n\r\n private static _V_START = new Vector3();\r\n private static _V_END = new Vector3();\r\n private static _V_OFFSET_START = new Vector3();\r\n private static _V_OFFSET_END = new Vector3();\r\n\r\n /**\r\n * Treshold used to pick the mesh\r\n */\r\n public intersectionThreshold = 0.1;\r\n\r\n /**\r\n * GreasedLineMesh\r\n * @param name name of the mesh\r\n * @param scene the scene\r\n * @param _options mesh options\r\n */\r\n constructor(\r\n public readonly name: string,\r\n scene: Scene,\r\n _options: GreasedLineMeshOptions\r\n ) {\r\n super(name, scene, _options);\r\n\r\n this._previousAndSide = [];\r\n this._nextAndCounters = [];\r\n\r\n if (_options.points) {\r\n this.addPoints(GreasedLineTools.ConvertPoints(_options.points));\r\n }\r\n }\r\n\r\n /**\r\n * \"GreasedLineMesh\"\r\n * @returns \"GreasedLineMesh\"\r\n */\r\n public getClassName(): string {\r\n return \"GreasedLineMesh\";\r\n }\r\n\r\n protected _updateColorPointers() {\r\n if (this._options.colorPointers) {\r\n return;\r\n }\r\n\r\n let colorPointer = 0;\r\n this._colorPointers = [];\r\n this._points.forEach((p) => {\r\n for (let jj = 0; jj < p.length; jj += 3) {\r\n this._colorPointers.push(colorPointer);\r\n this._colorPointers.push(colorPointer++);\r\n }\r\n });\r\n }\r\n\r\n protected _updateWidths(): void {\r\n // intentionally left blank\r\n }\r\n\r\n protected _setPoints(points: number[][]) {\r\n this._points = points;\r\n this._options.points = points;\r\n\r\n this._initGreasedLine();\r\n\r\n let indiceOffset = 0;\r\n let vertexPositionsLen = 0,\r\n indicesLength = 0,\r\n uvLength = 0,\r\n previousAndSideLength = 0;\r\n points.forEach((p) => {\r\n vertexPositionsLen += p.length * 2;\r\n indicesLength += (p.length - 3) * 2;\r\n uvLength += (p.length * 4) / 3;\r\n previousAndSideLength += (p.length * 8) / 3;\r\n });\r\n const vertexPositionsArr = new Float32Array(vertexPositionsLen);\r\n const indicesArr = vertexPositionsLen > 65535 ? new Uint32Array(indicesLength) : new Uint16Array(indicesLength);\r\n const uvArr = new Float32Array(uvLength);\r\n const previousAndSide = new Float32Array(previousAndSideLength);\r\n // it's the same length here\r\n const nextAndCounters = new Float32Array(previousAndSideLength);\r\n let vertexPositionsOffset = 0,\r\n indicesOffset = 0,\r\n uvOffset = 0,\r\n previousAndSideOffset = 0,\r\n nextAndCountersOffset = 0;\r\n\r\n points.forEach((p) => {\r\n const lengthArray = GreasedLineTools.GetLineLengthArray(p);\r\n const totalLength = lengthArray[lengthArray.length - 1];\r\n for (let j = 0, jj = 0; jj < p.length; j++, jj += 3) {\r\n const baseOffset = vertexPositionsOffset + jj * 2;\r\n vertexPositionsArr[baseOffset + 0] = p[jj + 0];\r\n vertexPositionsArr[baseOffset + 1] = p[jj + 1];\r\n vertexPositionsArr[baseOffset + 2] = p[jj + 2];\r\n vertexPositionsArr[baseOffset + 3] = p[jj + 0];\r\n vertexPositionsArr[baseOffset + 4] = p[jj + 1];\r\n vertexPositionsArr[baseOffset + 5] = p[jj + 2];\r\n\r\n if (jj < p.length - 3) {\r\n const n = j * 2 + indiceOffset;\r\n const baseIndicesOffset = indicesOffset + jj * 2;\r\n indicesArr[baseIndicesOffset + 0] = n;\r\n indicesArr[baseIndicesOffset + 1] = n + 1;\r\n indicesArr[baseIndicesOffset + 2] = n + 2;\r\n indicesArr[baseIndicesOffset + 3] = n + 2;\r\n indicesArr[baseIndicesOffset + 4] = n + 1;\r\n indicesArr[baseIndicesOffset + 5] = n + 3;\r\n }\r\n }\r\n\r\n indiceOffset += (p.length / 3) * 2;\r\n const currVertexPositionsOffsetLength = p.length * 2;\r\n const positions = vertexPositionsArr.subarray(vertexPositionsOffset, vertexPositionsOffset + currVertexPositionsOffsetLength);\r\n vertexPositionsOffset += currVertexPositionsOffsetLength;\r\n indicesOffset += (p.length - 3) * 2;\r\n\r\n const previous = new Float32Array(positions.length);\r\n const next = new Float32Array(positions.length);\r\n const l = positions.length / 6;\r\n let v;\r\n if (GreasedLineMesh._CompareV3(0, l - 1, positions)) {\r\n v = positions.subarray((l - 2) * 6, (l - 1) * 6);\r\n } else {\r\n v = positions.subarray(0, 6);\r\n }\r\n previous.set(v);\r\n previous.set(positions.subarray(0, positions.length - 6), 6);\r\n next.set(positions.subarray(6));\r\n if (GreasedLineMesh._CompareV3(l - 1, 0, positions)) {\r\n v = positions.subarray(6, 12);\r\n } else {\r\n v = positions.subarray((l - 1) * 6, l * 6);\r\n }\r\n next.set(v, next.length - 6);\r\n\r\n for (let i = 0, sidesLength = positions.length / 3; i < sidesLength; i++) {\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3];\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 1];\r\n previousAndSide[previousAndSideOffset++] = previous[i * 3 + 2];\r\n // side[i] = i % 2 ? -1 : 1;\r\n // side[i] = 1 - ((i & 1) << 1);\r\n previousAndSide[previousAndSideOffset++] = 1 - ((i & 1) << 1);\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3];\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 1];\r\n nextAndCounters[nextAndCountersOffset++] = next[i * 3 + 2];\r\n // counters[i] = lengthArray[i >> 1] / totalLength;\r\n nextAndCounters[nextAndCountersOffset++] = lengthArray[i >> 1] / totalLength;\r\n }\r\n if (this._options.uvs) {\r\n for (let i = 0; i < this._options.uvs.length; i++) {\r\n uvArr[uvOffset++] = this._options.uvs[i];\r\n }\r\n } else {\r\n for (let j = 0; j < l; j++) {\r\n // uvs\r\n const uvOffsetBase = uvOffset + j * 4;\r\n uvArr[uvOffsetBase + 0] = j / (l - 1);\r\n uvArr[uvOffsetBase + 1] = 0;\r\n uvArr[uvOffsetBase + 2] = j / (l - 1);\r\n uvArr[uvOffsetBase + 3] = 1;\r\n }\r\n uvOffset += l * 4;\r\n }\r\n });\r\n this._vertexPositions = vertexPositionsArr;\r\n this._indices = indicesArr;\r\n this._uvs = uvArr;\r\n this._previousAndSide = previousAndSide;\r\n this._nextAndCounters = nextAndCounters;\r\n\r\n if (!this._lazy) {\r\n if (!this._options.colorPointers) {\r\n this._updateColorPointers();\r\n }\r\n this._createVertexBuffers();\r\n this.refreshBoundingInfo();\r\n }\r\n }\r\n\r\n /**\r\n * Clones the GreasedLineMesh.\r\n * @param name new line name\r\n * @param newParent new parent node\r\n * @returns cloned line\r\n */\r\n public clone(name: string = `${this.name}-cloned`, newParent?: Nullable<Node>) {\r\n const lineOptions = this._createLineOptions();\r\n const deepCopiedLineOptions = {};\r\n DeepCopier.DeepCopy(lineOptions, deepCopiedLineOptions, [\"instance\"], undefined, true);\r\n\r\n const cloned = new GreasedLineMesh(name, this._scene, <GreasedLineMeshOptions>deepCopiedLineOptions);\r\n if (newParent) {\r\n cloned.parent = newParent;\r\n }\r\n\r\n cloned.material = this.material;\r\n\r\n return cloned;\r\n }\r\n\r\n /**\r\n * Serializes this GreasedLineMesh\r\n * @param serializationObject object to write serialization to\r\n */\r\n public serialize(serializationObject: any): void {\r\n super.serialize(serializationObject);\r\n serializationObject.type = this.getClassName();\r\n\r\n serializationObject.lineOptions = this._createLineOptions();\r\n }\r\n\r\n /**\r\n * Parses a serialized GreasedLineMesh\r\n * @param parsedMesh the serialized GreasedLineMesh\r\n * @param scene the scene to create the GreasedLineMesh in\r\n * @returns the created GreasedLineMesh\r\n */\r\n public static Parse(parsedMesh: any, scene: Scene): Mesh {\r\n const lineOptions = <GreasedLineMeshOptions>parsedMesh.lineOptions;\r\n const name = <string>parsedMesh.name;\r\n const result = new GreasedLineMesh(name, scene, lineOptions);\r\n return result;\r\n }\r\n\r\n protected _initGreasedLine() {\r\n super._initGreasedLine();\r\n\r\n this._previousAndSide = [];\r\n this._nextAndCounters = [];\r\n }\r\n /**\r\n * Checks whether a ray is intersecting this GreasedLineMesh\r\n * @param ray ray to check the intersection of this mesh with\r\n * @param fastCheck not supported\r\n * @param trianglePredicate not supported\r\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\r\n * @param worldToUse not supported\r\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\r\n * @returns the picking info\r\n */\r\n public intersects(\r\n ray: Ray,\r\n fastCheck?: boolean,\r\n trianglePredicate?: TrianglePickingPredicate,\r\n onlyBoundingInfo = false,\r\n worldToUse?: Matrix,\r\n skipBoundingInfo = false\r\n ): PickingInfo {\r\n const pickingInfo = new PickingInfo();\r\n const intersections = this.findAllIntersections(ray, fastCheck, trianglePredicate, onlyBoundingInfo, worldToUse, skipBoundingInfo, true);\r\n if (intersections?.length === 1) {\r\n const intersection = intersections[0];\r\n pickingInfo.hit = true;\r\n pickingInfo.distance = intersection.distance;\r\n pickingInfo.ray = ray;\r\n pickingInfo.pickedMesh = this;\r\n pickingInfo.pickedPoint = intersection.point;\r\n }\r\n return pickingInfo;\r\n }\r\n\r\n /**\r\n * Gets all intersections of a ray and the line\r\n * @param ray Ray to check the intersection of this mesh with\r\n * @param _fastCheck not supported\r\n * @param _trianglePredicate not supported\r\n * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)\r\n * @param _worldToUse not supported\r\n * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check\r\n * @param firstOnly If true, the first and only intersection is immediatelly returned if found\r\n * @returns intersection(s)\r\n */\r\n public findAllIntersections(\r\n ray: Ray,\r\n _fastCheck?: boolean,\r\n _trianglePredicate?: TrianglePickingPredicate,\r\n onlyBoundingInfo = false,\r\n _worldToUse?: Matrix,\r\n skipBoundingInfo = false,\r\n firstOnly = false\r\n ): { distance: number; point: Vector3 }[] | undefined {\r\n if (onlyBoundingInfo && !skipBoundingInfo && ray.intersectsSphere(this._boundingSphere, this.intersectionThreshold) === false) {\r\n return;\r\n }\r\n\r\n const indices = this.getIndices();\r\n const positions = this.getVerticesData(VertexBuffer.PositionKind);\r\n const widths = this._widths;\r\n\r\n const lineWidth = this.greasedLineMaterial?.width ?? 1;\r\n\r\n const intersects = [];\r\n if (indices && positions && widths) {\r\n let i = 0,\r\n l = 0;\r\n for (i = 0, l = indices.length - 1; i < l; i += 3) {\r\n const a = indices[i];\r\n const b = indices[i + 1];\r\n\r\n GreasedLineMesh._V_START.fromArray(positions, a * 3);\r\n GreasedLineMesh._V_END.fromArray(positions, b * 3);\r\n\r\n if (this._offsets) {\r\n GreasedLineMesh._V_OFFSET_START.fromArray(this._offsets, a * 3);\r\n GreasedLineMesh._V_OFFSET_END.fromArray(this._offsets, b * 3);\r\n GreasedLineMesh._V_START.addInPlace(GreasedLineMesh._V_OFFSET_START);\r\n GreasedLineMesh._V_END.addInPlace(GreasedLineMesh._V_OFFSET_END);\r\n }\r\n\r\n const iFloored = Math.floor(i / 3);\r\n const width = widths[iFloored] !== undefined ? widths[iFloored] : 1;\r\n const precision = (this.intersectionThreshold * (lineWidth * width)) / 2;\r\n\r\n const distance = ray.intersectionSegment(GreasedLineMesh._V_START, GreasedLineMesh._V_END, precision);\r\n if (distance !== -1) {\r\n intersects.push({\r\n distance: distance,\r\n point: ray.direction.normalize().multiplyByFloats(distance, distance, distance).add(ray.origin),\r\n });\r\n if (firstOnly) {\r\n return intersects;\r\n }\r\n }\r\n }\r\n i = l;\r\n }\r\n\r\n return intersects;\r\n }\r\n\r\n private get _boundingSphere() {\r\n return this.getBoundingInfo().boundingSphere;\r\n }\r\n\r\n private static _CompareV3(positionIdx1: number, positionIdx2: number, positions: number[] | Float32Array) {\r\n const arrayIdx1 = positionIdx1 * 6;\r\n const arrayIdx2 = positionIdx2 * 6;\r\n return positions[arrayIdx1] === positions[arrayIdx2] && positions[arrayIdx1 + 1] === positions[arrayIdx2 + 1] && positions[arrayIdx1 + 2] === positions[arrayIdx2 + 2];\r\n }\r\n\r\n protected _createVertexBuffers() {\r\n const vertexData: VertexData = super._createVertexBuffers();\r\n\r\n const engine = this._scene.getEngine();\r\n\r\n const previousAndSideBuffer = new Buffer(engine, this._previousAndSide, false, 4);\r\n this.setVerticesBuffer(previousAndSideBuffer.createVertexBuffer(\"grl_previousAndSide\", 0, 4));\r\n\r\n const nextAndCountersBuffer = new Buffer(engine, this._nextAndCounters, false, 4);\r\n this.setVerticesBuffer(nextAndCountersBuffer.createVertexBuffer(\"grl_nextAndCounters\", 0, 4));\r\n\r\n const widthBuffer = new Buffer(engine, this._widths, this._updatable, 1);\r\n this.setVerticesBuffer(widthBuffer.createVertexBuffer(\"grl_widths\", 0, 1));\r\n this._widthsBuffer = widthBuffer;\r\n\r\n const colorPointersBuffer = new Buffer(engine, this._colorPointers, this._updatable, 1);\r\n this.setVerticesBuffer(colorPointersBuffer.createVertexBuffer(\"grl_colorPointers\", 0, 1));\r\n this._colorPointersBuffer = colorPointersBuffer;\r\n\r\n return vertexData;\r\n }\r\n}\r\n"]}
@@ -2,7 +2,6 @@ import type { Nullable, FloatArray, DataArray, IndicesArray } from "../types";
2
2
  import type { Scene } from "../scene";
3
3
  import type { Vector2 } from "../Maths/math.vector";
4
4
  import { Vector3 } from "../Maths/math.vector";
5
- import type { Engine } from "../Engines/engine";
6
5
  import type { IGetSetVerticesData } from "../Meshes/mesh.vertexData";
7
6
  import { VertexData } from "../Meshes/mesh.vertexData";
8
7
  import { VertexBuffer } from "../Buffers/buffer";
@@ -11,6 +10,7 @@ import { BoundingInfo } from "../Culling/boundingInfo";
11
10
  import type { DataBuffer } from "../Buffers/dataBuffer";
12
11
  import type { AbstractScene } from "../abstractScene";
13
12
  import type { Mesh } from "../Meshes/mesh";
13
+ import type { AbstractEngine } from "../Engines/abstractEngine";
14
14
  /**
15
15
  * Class used to store geometry data (vertex buffers + index buffer)
16
16
  */
@@ -114,7 +114,7 @@ export declare class Geometry implements IGetSetVerticesData {
114
114
  * Gets the hosting engine
115
115
  * @returns the hosting Engine
116
116
  */
117
- getEngine(): Engine;
117
+ getEngine(): AbstractEngine;
118
118
  /**
119
119
  * Defines if the geometry is ready to use
120
120
  * @returns true if the geometry is ready to be used
@@ -306,11 +306,12 @@ export class Geometry {
306
306
  return;
307
307
  }
308
308
  const vaos = overrideVertexArrayObjects ? overrideVertexArrayObjects : this._vertexArrayObjects;
309
+ const engine = this._engine;
309
310
  // Using VAO
310
311
  if (!vaos[effect.key]) {
311
- vaos[effect.key] = this._engine.recordVertexArrayObject(vbs, indexToBind, effect, overrideVertexBuffers);
312
+ vaos[effect.key] = engine.recordVertexArrayObject(vbs, indexToBind, effect, overrideVertexBuffers);
312
313
  }
313
- this._engine.bindVertexArrayObject(vaos[effect.key], indexToBind);
314
+ engine.bindVertexArrayObject(vaos[effect.key], indexToBind);
314
315
  }
315
316
  /**
316
317
  * Gets total number of vertices