@spiffcommerce/preview 3.6.2-rc.4 → 3.6.2-rc.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 (473) hide show
  1. package/dist/node_modules/@babylonjs/core/Actions/abstractActionManager.esm.js +41 -0
  2. package/dist/node_modules/@babylonjs/core/Actions/action.esm.js +122 -0
  3. package/dist/node_modules/@babylonjs/core/Actions/actionEvent.esm.js +59 -0
  4. package/dist/node_modules/@babylonjs/core/Actions/actionManager.esm.js +335 -0
  5. package/dist/node_modules/@babylonjs/core/Actions/condition.esm.js +193 -0
  6. package/dist/node_modules/@babylonjs/core/Actions/directActions.esm.js +354 -0
  7. package/dist/node_modules/@babylonjs/core/Animations/animatable.esm.js +478 -0
  8. package/dist/node_modules/@babylonjs/core/Animations/animation.esm.js +866 -0
  9. package/dist/node_modules/@babylonjs/core/Animations/animationEvent.esm.js +18 -0
  10. package/dist/node_modules/@babylonjs/core/Animations/animationGroup.esm.js +470 -0
  11. package/dist/node_modules/@babylonjs/core/Animations/animationKey.esm.js +7 -0
  12. package/dist/node_modules/@babylonjs/core/Animations/animationRange.esm.js +21 -0
  13. package/dist/node_modules/@babylonjs/core/Animations/easing.esm.js +93 -0
  14. package/dist/node_modules/@babylonjs/core/Animations/runtimeAnimation.esm.js +281 -0
  15. package/dist/node_modules/@babylonjs/core/Audio/sound.esm.js +568 -0
  16. package/dist/node_modules/@babylonjs/core/Audio/weightedsound.esm.js +117 -0
  17. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/autoRotationBehavior.esm.js +145 -0
  18. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/bouncingBehavior.esm.js +93 -0
  19. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/framingBehavior.esm.js +295 -0
  20. package/dist/node_modules/@babylonjs/core/Bones/bone.esm.js +701 -0
  21. package/dist/node_modules/@babylonjs/core/Bones/skeleton.esm.js +478 -0
  22. package/dist/node_modules/@babylonjs/core/Buffers/buffer.esm.js +433 -0
  23. package/dist/node_modules/@babylonjs/core/Buffers/dataBuffer.esm.js +18 -0
  24. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraMouseWheelInput.esm.js +67 -0
  25. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraPointersInput.esm.js +191 -0
  26. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.esm.js +93 -0
  27. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraMouseWheelInput.esm.js +119 -0
  28. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput.esm.js +119 -0
  29. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraKeyboardMoveInput.esm.js +108 -0
  30. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseInput.esm.js +114 -0
  31. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseWheelInput.esm.js +249 -0
  32. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraTouchInput.esm.js +103 -0
  33. package/dist/node_modules/@babylonjs/core/Cameras/arcRotateCamera.esm.js +589 -0
  34. package/dist/node_modules/@babylonjs/core/Cameras/arcRotateCameraInputsManager.esm.js +37 -0
  35. package/dist/node_modules/@babylonjs/core/Cameras/camera.esm.js +686 -0
  36. package/dist/node_modules/@babylonjs/core/Cameras/cameraInputsManager.esm.js +147 -0
  37. package/dist/node_modules/@babylonjs/core/Cameras/freeCamera.esm.js +236 -0
  38. package/dist/node_modules/@babylonjs/core/Cameras/freeCameraInputsManager.esm.js +66 -0
  39. package/dist/node_modules/@babylonjs/core/Cameras/targetCamera.esm.js +214 -0
  40. package/dist/node_modules/@babylonjs/core/Collisions/intersectionInfo.esm.js +8 -0
  41. package/dist/node_modules/@babylonjs/core/Collisions/meshCollisionData.esm.js +9 -0
  42. package/dist/node_modules/@babylonjs/core/Collisions/pickingInfo.esm.js +59 -0
  43. package/dist/node_modules/@babylonjs/core/Compat/compatibilityOptions.esm.js +6 -0
  44. package/dist/node_modules/@babylonjs/core/Culling/boundingBox.esm.js +174 -0
  45. package/dist/node_modules/@babylonjs/core/Culling/boundingInfo.esm.js +159 -0
  46. package/dist/node_modules/@babylonjs/core/Culling/boundingSphere.esm.js +114 -0
  47. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceEnums.esm.js +37 -0
  48. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSource.esm.js +23 -0
  49. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSourceManager.esm.js +106 -0
  50. package/dist/node_modules/@babylonjs/core/DeviceInput/eventFactory.esm.js +118 -0
  51. package/dist/node_modules/@babylonjs/core/DeviceInput/internalDeviceSourceManager.esm.js +46 -0
  52. package/dist/node_modules/@babylonjs/core/DeviceInput/nativeDeviceInputSystem.esm.js +50 -0
  53. package/dist/node_modules/@babylonjs/core/DeviceInput/webDeviceInputSystem.esm.js +354 -0
  54. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.alpha.esm.js +101 -0
  55. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.cubeTexture.esm.js +103 -0
  56. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicBuffer.esm.js +11 -0
  57. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicTexture.esm.js +14 -0
  58. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.multiRender.esm.js +111 -0
  59. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.rawTexture.esm.js +109 -0
  60. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.readTexture.esm.js +76 -0
  61. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.renderTarget.esm.js +69 -0
  62. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.renderTargetCube.esm.js +15 -0
  63. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.uniformBuffer.esm.js +29 -0
  64. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.views.esm.js +85 -0
  65. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.esm.js +9 -0
  66. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.esm.js +36 -0
  67. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.esm.js +13 -0
  68. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.esm.js +9 -0
  69. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/shaderDefineExpression.esm.js +88 -0
  70. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeConditionNode.esm.js +14 -0
  71. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeCursor.esm.js +44 -0
  72. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeNode.esm.js +31 -0
  73. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeTestNode.esm.js +9 -0
  74. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderProcessor.esm.js +230 -0
  75. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGL2ShaderProcessors.esm.js +30 -0
  76. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLHardwareTexture.esm.js +34 -0
  77. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLPipelineContext.esm.js +388 -0
  78. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLRenderTargetWrapper.esm.js +87 -0
  79. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLShaderProcessors.esm.js +16 -0
  80. package/dist/node_modules/@babylonjs/core/Engines/constants.esm.js +254 -0
  81. package/dist/node_modules/@babylonjs/core/Engines/engine.esm.js +1120 -0
  82. package/dist/node_modules/@babylonjs/core/Engines/engineStore.esm.js +23 -0
  83. package/dist/node_modules/@babylonjs/core/Engines/nullEngine.esm.js +697 -0
  84. package/dist/node_modules/@babylonjs/core/Engines/performanceConfigurator.esm.js +22 -0
  85. package/dist/node_modules/@babylonjs/core/Engines/renderTargetWrapper.esm.js +273 -0
  86. package/dist/node_modules/@babylonjs/core/Engines/shaderStore.esm.js +36 -0
  87. package/dist/node_modules/@babylonjs/core/Engines/thinEngine.esm.js +2921 -0
  88. package/dist/node_modules/@babylonjs/core/Events/deviceInputEvents.esm.js +13 -0
  89. package/dist/node_modules/@babylonjs/core/Events/keyboardEvents.esm.js +41 -0
  90. package/dist/node_modules/@babylonjs/core/Events/pointerEvents.esm.js +63 -0
  91. package/dist/node_modules/@babylonjs/core/Inputs/pointerPickingConfiguration.esm.js +8 -0
  92. package/dist/node_modules/@babylonjs/core/Inputs/scene.inputManager.esm.js +418 -0
  93. package/dist/node_modules/@babylonjs/core/Layers/effectLayer.esm.js +437 -0
  94. package/dist/node_modules/@babylonjs/core/Layers/effectLayerSceneComponent.esm.js +141 -0
  95. package/dist/node_modules/@babylonjs/core/Layers/glowLayer.esm.js +343 -0
  96. package/dist/node_modules/@babylonjs/core/Layers/highlightLayer.esm.js +396 -0
  97. package/dist/node_modules/@babylonjs/core/Lights/directionalLight.esm.js +224 -0
  98. package/dist/node_modules/@babylonjs/core/Lights/hemisphericLight.esm.js +92 -0
  99. package/dist/node_modules/@babylonjs/core/Lights/light.esm.js +476 -0
  100. package/dist/node_modules/@babylonjs/core/Lights/lightConstants.esm.js +30 -0
  101. package/dist/node_modules/@babylonjs/core/Lights/pointLight.esm.js +153 -0
  102. package/dist/node_modules/@babylonjs/core/Lights/shadowLight.esm.js +196 -0
  103. package/dist/node_modules/@babylonjs/core/Lights/spotLight.esm.js +287 -0
  104. package/dist/node_modules/@babylonjs/core/Loading/sceneLoader.esm.js +551 -0
  105. package/dist/node_modules/@babylonjs/core/Loading/sceneLoaderFlags.esm.js +48 -0
  106. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrAnisotropicConfiguration.esm.js +112 -0
  107. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrBRDFConfiguration.esm.js +48 -0
  108. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrBaseMaterial.esm.js +568 -0
  109. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrClearCoatConfiguration.esm.js +139 -0
  110. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrIridescenceConfiguration.esm.js +97 -0
  111. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrMaterial.esm.js +496 -0
  112. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrSheenConfiguration.esm.js +106 -0
  113. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrSubSurfaceConfiguration.esm.js +270 -0
  114. package/dist/node_modules/@babylonjs/core/Materials/Textures/Filtering/hdrFiltering.esm.js +103 -0
  115. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.esm.js +53 -0
  116. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.esm.js +51 -0
  117. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.esm.js +81 -0
  118. package/dist/node_modules/@babylonjs/core/Materials/Textures/baseTexture.esm.js +542 -0
  119. package/dist/node_modules/@babylonjs/core/Materials/Textures/baseTexture.polynomial.esm.js +23 -0
  120. package/dist/node_modules/@babylonjs/core/Materials/Textures/cubeTexture.esm.js +244 -0
  121. package/dist/node_modules/@babylonjs/core/Materials/Textures/dynamicTexture.esm.js +134 -0
  122. package/dist/node_modules/@babylonjs/core/Materials/Textures/equiRectangularCubeTexture.esm.js +89 -0
  123. package/dist/node_modules/@babylonjs/core/Materials/Textures/hdrCubeTexture.esm.js +175 -0
  124. package/dist/node_modules/@babylonjs/core/Materials/Textures/internalTexture.esm.js +150 -0
  125. package/dist/node_modules/@babylonjs/core/Materials/Textures/ktx2decoderTypes.esm.js +17 -0
  126. package/dist/node_modules/@babylonjs/core/Materials/Textures/mirrorTexture.esm.js +138 -0
  127. package/dist/node_modules/@babylonjs/core/Materials/Textures/multiRenderTarget.esm.js +223 -0
  128. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawCubeTexture.esm.js +58 -0
  129. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawTexture.esm.js +156 -0
  130. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawTexture2DArray.esm.js +53 -0
  131. package/dist/node_modules/@babylonjs/core/Materials/Textures/renderTargetTexture.esm.js +605 -0
  132. package/dist/node_modules/@babylonjs/core/Materials/Textures/texture.esm.js +421 -0
  133. package/dist/node_modules/@babylonjs/core/Materials/Textures/textureSampler.esm.js +101 -0
  134. package/dist/node_modules/@babylonjs/core/Materials/Textures/thinTexture.esm.js +170 -0
  135. package/dist/node_modules/@babylonjs/core/Materials/clipPlaneMaterialHelper.esm.js +28 -0
  136. package/dist/node_modules/@babylonjs/core/Materials/colorCurves.esm.js +397 -0
  137. package/dist/node_modules/@babylonjs/core/Materials/drawWrapper.esm.js +22 -0
  138. package/dist/node_modules/@babylonjs/core/Materials/effect.esm.js +890 -0
  139. package/dist/node_modules/@babylonjs/core/Materials/effectFallbacks.esm.js +73 -0
  140. package/dist/node_modules/@babylonjs/core/Materials/effectRenderer.esm.js +132 -0
  141. package/dist/node_modules/@babylonjs/core/Materials/imageProcessingConfiguration.esm.js +428 -0
  142. package/dist/node_modules/@babylonjs/core/Materials/material.detailMapConfiguration.esm.js +90 -0
  143. package/dist/node_modules/@babylonjs/core/Materials/material.esm.js +906 -0
  144. package/dist/node_modules/@babylonjs/core/Materials/materialDefines.esm.js +161 -0
  145. package/dist/node_modules/@babylonjs/core/Materials/materialFlags.esm.js +226 -0
  146. package/dist/node_modules/@babylonjs/core/Materials/materialHelper.esm.js +501 -0
  147. package/dist/node_modules/@babylonjs/core/Materials/materialPluginBase.esm.js +226 -0
  148. package/dist/node_modules/@babylonjs/core/Materials/materialPluginEvent.esm.js +7 -0
  149. package/dist/node_modules/@babylonjs/core/Materials/materialPluginManager.esm.js +212 -0
  150. package/dist/node_modules/@babylonjs/core/Materials/materialStencilState.esm.js +145 -0
  151. package/dist/node_modules/@babylonjs/core/Materials/multiMaterial.esm.js +164 -0
  152. package/dist/node_modules/@babylonjs/core/Materials/prePassConfiguration.esm.js +38 -0
  153. package/dist/node_modules/@babylonjs/core/Materials/pushMaterial.esm.js +48 -0
  154. package/dist/node_modules/@babylonjs/core/Materials/shaderLanguage.esm.js +7 -0
  155. package/dist/node_modules/@babylonjs/core/Materials/shaderMaterial.esm.js +838 -0
  156. package/dist/node_modules/@babylonjs/core/Materials/standardMaterial.esm.js +934 -0
  157. package/dist/node_modules/@babylonjs/core/Materials/uniformBuffer.esm.js +541 -0
  158. package/dist/node_modules/@babylonjs/core/Maths/math.axis.esm.js +19 -0
  159. package/dist/node_modules/@babylonjs/core/Maths/math.color.esm.js +903 -0
  160. package/dist/node_modules/@babylonjs/core/Maths/math.constants.esm.js +6 -0
  161. package/dist/node_modules/@babylonjs/core/Maths/math.frustum.esm.js +91 -0
  162. package/dist/node_modules/@babylonjs/core/Maths/math.functions.esm.js +43 -0
  163. package/dist/node_modules/@babylonjs/core/Maths/math.path.esm.js +9 -0
  164. package/dist/node_modules/@babylonjs/core/Maths/math.plane.esm.js +145 -0
  165. package/dist/node_modules/@babylonjs/core/Maths/math.scalar.esm.js +284 -0
  166. package/dist/node_modules/@babylonjs/core/Maths/math.size.esm.js +124 -0
  167. package/dist/node_modules/@babylonjs/core/Maths/math.vector.esm.js +4915 -0
  168. package/dist/node_modules/@babylonjs/core/Maths/math.viewport.esm.js +41 -0
  169. package/dist/node_modules/@babylonjs/core/Maths/sphericalPolynomial.esm.js +177 -0
  170. package/dist/node_modules/@babylonjs/core/Meshes/Builders/boxBuilder.esm.js +260 -0
  171. package/dist/node_modules/@babylonjs/core/Meshes/Compression/dracoCompression.esm.js +233 -0
  172. package/dist/node_modules/@babylonjs/core/Meshes/Compression/meshoptCompression.esm.js +47 -0
  173. package/dist/node_modules/@babylonjs/core/Meshes/WebGL/webGLDataBuffer.esm.js +12 -0
  174. package/dist/node_modules/@babylonjs/core/Meshes/abstractMesh.esm.js +1448 -0
  175. package/dist/node_modules/@babylonjs/core/Meshes/geometry.esm.js +729 -0
  176. package/dist/node_modules/@babylonjs/core/Meshes/instancedMesh.esm.js +455 -0
  177. package/dist/node_modules/@babylonjs/core/Meshes/mesh.esm.js +2526 -0
  178. package/dist/node_modules/@babylonjs/core/Meshes/mesh.vertexData.esm.js +865 -0
  179. package/dist/node_modules/@babylonjs/core/Meshes/meshLODLevel.esm.js +13 -0
  180. package/dist/node_modules/@babylonjs/core/Meshes/subMesh.esm.js +422 -0
  181. package/dist/node_modules/@babylonjs/core/Meshes/thinInstanceMesh.esm.js +129 -0
  182. package/dist/node_modules/@babylonjs/core/Meshes/transformNode.esm.js +796 -0
  183. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/cubemapToSphericalPolynomial.esm.js +111 -0
  184. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/hdr.esm.js +122 -0
  185. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/panoramaToCubemap.esm.js +78 -0
  186. package/dist/node_modules/@babylonjs/core/Misc/andOrNotEvaluator.esm.js +41 -0
  187. package/dist/node_modules/@babylonjs/core/Misc/arrayTools.esm.js +52 -0
  188. package/dist/node_modules/@babylonjs/core/Misc/assetsManager.esm.js +561 -0
  189. package/dist/node_modules/@babylonjs/core/Misc/brdfTextureTools.esm.js +31 -0
  190. package/dist/node_modules/@babylonjs/core/Misc/copyTools.esm.js +44 -0
  191. package/dist/node_modules/@babylonjs/core/Misc/coroutine.esm.js +53 -0
  192. package/dist/node_modules/@babylonjs/core/Misc/dataReader.esm.js +55 -0
  193. package/dist/node_modules/@babylonjs/core/Misc/dds.esm.js +329 -0
  194. package/dist/node_modules/@babylonjs/core/Misc/decorators.esm.js +332 -0
  195. package/dist/node_modules/@babylonjs/core/Misc/deepCopier.esm.js +52 -0
  196. package/dist/node_modules/@babylonjs/core/Misc/deferred.esm.js +25 -0
  197. package/dist/node_modules/@babylonjs/core/Misc/devTools.esm.js +6 -0
  198. package/dist/node_modules/@babylonjs/core/Misc/domManagement.esm.js +21 -0
  199. package/dist/node_modules/@babylonjs/core/Misc/dumpTools.esm.js +117 -0
  200. package/dist/node_modules/@babylonjs/core/Misc/environmentTextureTools.esm.js +187 -0
  201. package/dist/node_modules/@babylonjs/core/Misc/error.esm.js +40 -0
  202. package/dist/node_modules/@babylonjs/core/Misc/fileTools.esm.js +339 -0
  203. package/dist/node_modules/@babylonjs/core/Misc/filesInputStore.esm.js +6 -0
  204. package/dist/node_modules/@babylonjs/core/Misc/guid.esm.js +9 -0
  205. package/dist/node_modules/@babylonjs/core/Misc/instantiationTools.esm.js +26 -0
  206. package/dist/node_modules/@babylonjs/core/Misc/khronosTextureContainer.esm.js +79 -0
  207. package/dist/node_modules/@babylonjs/core/Misc/khronosTextureContainer2.esm.js +281 -0
  208. package/dist/node_modules/@babylonjs/core/Misc/logger.esm.js +77 -0
  209. package/dist/node_modules/@babylonjs/core/Misc/observable.esm.js +231 -0
  210. package/dist/node_modules/@babylonjs/core/Misc/perfCounter.esm.js +99 -0
  211. package/dist/node_modules/@babylonjs/core/Misc/performanceMonitor.esm.js +144 -0
  212. package/dist/node_modules/@babylonjs/core/Misc/precisionDate.esm.js +12 -0
  213. package/dist/node_modules/@babylonjs/core/Misc/retryStrategy.esm.js +14 -0
  214. package/dist/node_modules/@babylonjs/core/Misc/rgbdTextureTools.esm.js +51 -0
  215. package/dist/node_modules/@babylonjs/core/Misc/screenshotTools.esm.js +92 -0
  216. package/dist/node_modules/@babylonjs/core/Misc/smartArray.esm.js +118 -0
  217. package/dist/node_modules/@babylonjs/core/Misc/stringDictionary.esm.js +129 -0
  218. package/dist/node_modules/@babylonjs/core/Misc/stringTools.esm.js +26 -0
  219. package/dist/node_modules/@babylonjs/core/Misc/tags.esm.js +97 -0
  220. package/dist/node_modules/@babylonjs/core/Misc/textureTools.esm.js +41 -0
  221. package/dist/node_modules/@babylonjs/core/Misc/timingTools.esm.js +13 -0
  222. package/dist/node_modules/@babylonjs/core/Misc/tools.esm.js +929 -0
  223. package/dist/node_modules/@babylonjs/core/Misc/typeStore.esm.js +11 -0
  224. package/dist/node_modules/@babylonjs/core/Misc/uniqueIdGenerator.esm.js +13 -0
  225. package/dist/node_modules/@babylonjs/core/Misc/webRequest.esm.js +135 -0
  226. package/dist/node_modules/@babylonjs/core/Misc/workerPool.esm.js +80 -0
  227. package/dist/node_modules/@babylonjs/core/Morph/morphTarget.esm.js +187 -0
  228. package/dist/node_modules/@babylonjs/core/Morph/morphTargetManager.esm.js +249 -0
  229. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.esm.js +349 -0
  230. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.esm.js +306 -0
  231. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.esm.js +161 -0
  232. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.esm.js +589 -0
  233. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.esm.js +512 -0
  234. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderEffect.esm.js +114 -0
  235. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipeline.esm.js +139 -0
  236. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.esm.js +99 -0
  237. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.esm.js +48 -0
  238. package/dist/node_modules/@babylonjs/core/PostProcesses/bloomEffect.esm.js +76 -0
  239. package/dist/node_modules/@babylonjs/core/PostProcesses/bloomMergePostProcess.esm.js +40 -0
  240. package/dist/node_modules/@babylonjs/core/PostProcesses/blurPostProcess.esm.js +165 -0
  241. package/dist/node_modules/@babylonjs/core/PostProcesses/chromaticAberrationPostProcess.esm.js +61 -0
  242. package/dist/node_modules/@babylonjs/core/PostProcesses/circleOfConfusionPostProcess.esm.js +62 -0
  243. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldBlurPostProcess.esm.js +58 -0
  244. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldEffect.esm.js +131 -0
  245. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldMergePostProcess.esm.js +48 -0
  246. package/dist/node_modules/@babylonjs/core/PostProcesses/extractHighlightsPostProcess.esm.js +27 -0
  247. package/dist/node_modules/@babylonjs/core/PostProcesses/fxaaPostProcess.esm.js +41 -0
  248. package/dist/node_modules/@babylonjs/core/PostProcesses/grainPostProcess.esm.js +46 -0
  249. package/dist/node_modules/@babylonjs/core/PostProcesses/imageProcessingPostProcess.esm.js +359 -0
  250. package/dist/node_modules/@babylonjs/core/PostProcesses/motionBlurPostProcess.esm.js +178 -0
  251. package/dist/node_modules/@babylonjs/core/PostProcesses/passPostProcess.esm.js +40 -0
  252. package/dist/node_modules/@babylonjs/core/PostProcesses/postProcess.esm.js +457 -0
  253. package/dist/node_modules/@babylonjs/core/PostProcesses/postProcessManager.esm.js +94 -0
  254. package/dist/node_modules/@babylonjs/core/PostProcesses/screenSpaceReflectionPostProcess.esm.js +147 -0
  255. package/dist/node_modules/@babylonjs/core/PostProcesses/sharpenPostProcess.esm.js +46 -0
  256. package/dist/node_modules/@babylonjs/core/Probes/reflectionProbe.esm.js +184 -0
  257. package/dist/node_modules/@babylonjs/core/Rendering/boundingBoxRenderer.esm.js +170 -0
  258. package/dist/node_modules/@babylonjs/core/Rendering/depthRenderer.esm.js +185 -0
  259. package/dist/node_modules/@babylonjs/core/Rendering/depthRendererSceneComponent.esm.js +65 -0
  260. package/dist/node_modules/@babylonjs/core/Rendering/geometryBufferRenderer.esm.js +353 -0
  261. package/dist/node_modules/@babylonjs/core/Rendering/geometryBufferRendererSceneComponent.esm.js +55 -0
  262. package/dist/node_modules/@babylonjs/core/Rendering/motionBlurConfiguration.esm.js +8 -0
  263. package/dist/node_modules/@babylonjs/core/Rendering/renderingGroup.esm.js +223 -0
  264. package/dist/node_modules/@babylonjs/core/Rendering/renderingManager.esm.js +185 -0
  265. package/dist/node_modules/@babylonjs/core/Rendering/screenSpaceReflections2Configuration.esm.js +8 -0
  266. package/dist/node_modules/@babylonjs/core/Rendering/screenSpaceReflectionsConfiguration.esm.js +8 -0
  267. package/dist/node_modules/@babylonjs/core/Rendering/ssao2Configuration.esm.js +8 -0
  268. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.esm.js +48 -0
  269. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.esm.js +24 -0
  270. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.esm.js +35 -0
  271. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesVertex.esm.js +56 -0
  272. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.esm.js +4 -0
  273. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.esm.js +19 -0
  274. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.esm.js +8 -0
  275. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragment.esm.js +67 -0
  276. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentFunctions.esm.js +58 -0
  277. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentMainFunctions.esm.js +93 -0
  278. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertex.esm.js +11 -0
  279. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertexDeclaration.esm.js +8 -0
  280. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.esm.js +42 -0
  281. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.esm.js +21 -0
  282. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.esm.js +21 -0
  283. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.esm.js +27 -0
  284. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragment.esm.js +12 -0
  285. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragmentDeclaration.esm.js +6 -0
  286. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalVertexDeclaration.esm.js +7 -0
  287. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultFragmentDeclaration.esm.js +86 -0
  288. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultUboDeclaration.esm.js +50 -0
  289. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultVertexDeclaration.esm.js +46 -0
  290. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/depthPrePass.esm.js +7 -0
  291. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragment.esm.js +10 -0
  292. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.esm.js +34 -0
  293. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertex.esm.js +6 -0
  294. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.esm.js +6 -0
  295. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fresnelFunction.esm.js +10 -0
  296. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryUboDeclaration.esm.js +5 -0
  297. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryVertexDeclaration.esm.js +4 -0
  298. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/harmonicsFunctions.esm.js +42 -0
  299. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/hdrFilteringFunctions.esm.js +139 -0
  300. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/helperFunctions.esm.js +166 -0
  301. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration.esm.js +32 -0
  302. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions.esm.js +129 -0
  303. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/importanceSampling.esm.js +22 -0
  304. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.esm.js +31 -0
  305. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesVertex.esm.js +20 -0
  306. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment.esm.js +15 -0
  307. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment2.esm.js +15 -0
  308. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.esm.js +3 -0
  309. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVertex.esm.js +3 -0
  310. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragment.esm.js +278 -0
  311. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.esm.js +82 -0
  312. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.esm.js +81 -0
  313. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxFragmentDeclaration.esm.js +35 -0
  314. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxUboDeclaration.esm.js +34 -0
  315. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.esm.js +93 -0
  316. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.esm.js +7 -0
  317. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.esm.js +6 -0
  318. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.esm.js +7 -0
  319. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/mainUVVaryingDeclaration.esm.js +6 -0
  320. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/meshUboDeclaration.esm.js +15 -0
  321. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertex.esm.js +32 -0
  322. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexDeclaration.esm.js +17 -0
  323. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobal.esm.js +8 -0
  324. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.esm.js +19 -0
  325. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/mrtFragmentDeclaration.esm.js +6 -0
  326. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/oitDeclaration.esm.js +13 -0
  327. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/oitFragment.esm.js +40 -0
  328. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/packingFunctions.esm.js +15 -0
  329. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBRDFFunctions.esm.js +268 -0
  330. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.esm.js +83 -0
  331. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlphaFresnel.esm.js +37 -0
  332. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.esm.js +32 -0
  333. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAnisotropic.esm.js +50 -0
  334. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockClearcoat.esm.js +276 -0
  335. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockDirectLighting.esm.js +19 -0
  336. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalColorComposition.esm.js +45 -0
  337. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalLitComponents.esm.js +100 -0
  338. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.esm.js +27 -0
  339. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockGeometryInfo.esm.js +30 -0
  340. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockImageProcessing.esm.js +14 -0
  341. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockIridescence.esm.js +63 -0
  342. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockLightmapInit.esm.js +13 -0
  343. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalFinal.esm.js +13 -0
  344. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalGeometric.esm.js +13 -0
  345. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance.esm.js +24 -0
  346. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance0.esm.js +14 -0
  347. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflection.esm.js +270 -0
  348. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectivity.esm.js +131 -0
  349. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSheen.esm.js +197 -0
  350. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSubSurface.esm.js +337 -0
  351. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDebug.esm.js +176 -0
  352. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.esm.js +64 -0
  353. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFunctions.esm.js +130 -0
  354. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.esm.js +53 -0
  355. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentDeclaration.esm.js +179 -0
  356. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.esm.js +18 -0
  357. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.esm.js +101 -0
  358. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrHelperFunctions.esm.js +83 -0
  359. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrIBLFunctions.esm.js +35 -0
  360. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrUboDeclaration.esm.js +65 -0
  361. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrVertexDeclaration.esm.js +151 -0
  362. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pointCloudVertex.esm.js +6 -0
  363. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassDeclaration.esm.js +13 -0
  364. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertex.esm.js +37 -0
  365. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertexDeclaration.esm.js +13 -0
  366. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/reflectionFunction.esm.js +116 -0
  367. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.esm.js +20 -0
  368. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentDeclaration.esm.js +21 -0
  369. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexDeclaration.esm.js +6 -0
  370. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexImplementation.esm.js +39 -0
  371. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/sceneUboDeclaration.esm.js +13 -0
  372. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/screenSpaceRayTrace.esm.js +208 -0
  373. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.esm.js +614 -0
  374. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.esm.js +23 -0
  375. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/subSurfaceScatteringFunctions.esm.js +6 -0
  376. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/uvAttributeDeclaration.esm.js +6 -0
  377. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/uvVariableDeclaration.esm.js +9 -0
  378. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.esm.js +16 -0
  379. package/dist/node_modules/@babylonjs/core/Shaders/bloomMerge.fragment.esm.js +14 -0
  380. package/dist/node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.fragment.esm.js +11 -0
  381. package/dist/node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.vertex.esm.js +22 -0
  382. package/dist/node_modules/@babylonjs/core/Shaders/chromaticAberration.fragment.esm.js +34 -0
  383. package/dist/node_modules/@babylonjs/core/Shaders/circleOfConfusion.fragment.esm.js +19 -0
  384. package/dist/node_modules/@babylonjs/core/Shaders/default.fragment.esm.js +387 -0
  385. package/dist/node_modules/@babylonjs/core/Shaders/default.vertex.esm.js +171 -0
  386. package/dist/node_modules/@babylonjs/core/Shaders/depth.fragment.esm.js +47 -0
  387. package/dist/node_modules/@babylonjs/core/Shaders/depth.vertex.esm.js +72 -0
  388. package/dist/node_modules/@babylonjs/core/Shaders/depthOfField.fragment.esm.js +137 -0
  389. package/dist/node_modules/@babylonjs/core/Shaders/depthOfFieldMerge.fragment.esm.js +54 -0
  390. package/dist/node_modules/@babylonjs/core/Shaders/extractHighlights.fragment.esm.js +15 -0
  391. package/dist/node_modules/@babylonjs/core/Shaders/fxaa.fragment.esm.js +211 -0
  392. package/dist/node_modules/@babylonjs/core/Shaders/fxaa.vertex.esm.js +29 -0
  393. package/dist/node_modules/@babylonjs/core/Shaders/geometry.fragment.esm.js +147 -0
  394. package/dist/node_modules/@babylonjs/core/Shaders/geometry.vertex.esm.js +164 -0
  395. package/dist/node_modules/@babylonjs/core/Shaders/glowBlurPostProcess.fragment.esm.js +39 -0
  396. package/dist/node_modules/@babylonjs/core/Shaders/glowMapGeneration.fragment.esm.js +73 -0
  397. package/dist/node_modules/@babylonjs/core/Shaders/glowMapGeneration.vertex.esm.js +94 -0
  398. package/dist/node_modules/@babylonjs/core/Shaders/glowMapMerge.fragment.esm.js +29 -0
  399. package/dist/node_modules/@babylonjs/core/Shaders/glowMapMerge.vertex.esm.js +12 -0
  400. package/dist/node_modules/@babylonjs/core/Shaders/grain.fragment.esm.js +19 -0
  401. package/dist/node_modules/@babylonjs/core/Shaders/hdrFiltering.fragment.esm.js +19 -0
  402. package/dist/node_modules/@babylonjs/core/Shaders/hdrFiltering.vertex.esm.js +15 -0
  403. package/dist/node_modules/@babylonjs/core/Shaders/imageProcessing.fragment.esm.js +26 -0
  404. package/dist/node_modules/@babylonjs/core/Shaders/kernelBlur.fragment.esm.js +49 -0
  405. package/dist/node_modules/@babylonjs/core/Shaders/kernelBlur.vertex.esm.js +17 -0
  406. package/dist/node_modules/@babylonjs/core/Shaders/lensHighlights.fragment.esm.js +115 -0
  407. package/dist/node_modules/@babylonjs/core/Shaders/motionBlur.fragment.esm.js +74 -0
  408. package/dist/node_modules/@babylonjs/core/Shaders/pass.fragment.esm.js +13 -0
  409. package/dist/node_modules/@babylonjs/core/Shaders/passCube.fragment.esm.js +27 -0
  410. package/dist/node_modules/@babylonjs/core/Shaders/pbr.fragment.esm.js +648 -0
  411. package/dist/node_modules/@babylonjs/core/Shaders/pbr.vertex.esm.js +236 -0
  412. package/dist/node_modules/@babylonjs/core/Shaders/postprocess.vertex.esm.js +13 -0
  413. package/dist/node_modules/@babylonjs/core/Shaders/rgbdDecode.fragment.esm.js +11 -0
  414. package/dist/node_modules/@babylonjs/core/Shaders/rgbdEncode.fragment.esm.js +11 -0
  415. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection.fragment.esm.js +136 -0
  416. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2.fragment.esm.js +215 -0
  417. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2Blur.fragment.esm.js +52 -0
  418. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2BlurCombiner.fragment.esm.js +59 -0
  419. package/dist/node_modules/@babylonjs/core/Shaders/sharpen.fragment.esm.js +18 -0
  420. package/dist/node_modules/@babylonjs/core/Shaders/ssao.fragment.esm.js +55 -0
  421. package/dist/node_modules/@babylonjs/core/Shaders/ssao2.fragment.esm.js +165 -0
  422. package/dist/node_modules/@babylonjs/core/Shaders/ssaoCombine.fragment.esm.js +15 -0
  423. package/dist/node_modules/@babylonjs/core/Shaders/standard.fragment.esm.js +339 -0
  424. package/dist/node_modules/@babylonjs/core/States/alphaCullingState.esm.js +35 -0
  425. package/dist/node_modules/@babylonjs/core/States/depthCullingState.esm.js +69 -0
  426. package/dist/node_modules/@babylonjs/core/States/stencilState.esm.js +62 -0
  427. package/dist/node_modules/@babylonjs/core/States/stencilStateComposer.esm.js +70 -0
  428. package/dist/node_modules/@babylonjs/core/abstractScene.esm.js +71 -0
  429. package/dist/node_modules/@babylonjs/core/assetContainer.esm.js +425 -0
  430. package/dist/node_modules/@babylonjs/core/node.esm.js +536 -0
  431. package/dist/node_modules/@babylonjs/core/scene.esm.js +2809 -0
  432. package/dist/node_modules/@babylonjs/core/sceneComponent.esm.js +102 -0
  433. package/dist/node_modules/@babylonjs/core/tslib.es6.esm.js +12 -0
  434. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.esm.js +37 -0
  435. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.esm.js +902 -0
  436. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.esm.js +42 -0
  437. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.esm.js +195 -0
  438. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.esm.js +75 -0
  439. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.esm.js +77 -0
  440. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.esm.js +53 -0
  441. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.esm.js +31 -0
  442. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.esm.js +29 -0
  443. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.esm.js +47 -0
  444. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.esm.js +173 -0
  445. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.esm.js +82 -0
  446. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.esm.js +68 -0
  447. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.esm.js +60 -0
  448. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.esm.js +39 -0
  449. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.esm.js +42 -0
  450. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.esm.js +32 -0
  451. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.esm.js +35 -0
  452. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.esm.js +41 -0
  453. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.esm.js +41 -0
  454. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.esm.js +41 -0
  455. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.esm.js +41 -0
  456. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency.esm.js +41 -0
  457. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.esm.js +136 -0
  458. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.esm.js +37 -0
  459. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.esm.js +178 -0
  460. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.esm.js +40 -0
  461. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.esm.js +17 -0
  462. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.esm.js +29 -0
  463. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.esm.js +29 -0
  464. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.esm.js +31 -0
  465. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.esm.js +149 -0
  466. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.esm.js +170 -0
  467. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.esm.js +29 -0
  468. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.esm.js +29 -0
  469. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.esm.js +1562 -0
  470. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.esm.js +66 -0
  471. package/dist/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.esm.js +462 -0
  472. package/dist/node_modules/@babylonjs/loaders/glTF/glTFValidation.esm.js +81 -0
  473. package/package.json +3 -2
@@ -0,0 +1,1448 @@
1
+ import { Observable as O } from "../Misc/observable.esm.js";
2
+ import { ScenePerformancePriority as T } from "../scene.esm.js";
3
+ import { Vector3 as h, Matrix as y, Quaternion as N, TmpVectors as p } from "../Maths/math.vector.esm.js";
4
+ import { Engine as V } from "../Engines/engine.esm.js";
5
+ import { VertexBuffer as m } from "../Buffers/buffer.esm.js";
6
+ import { VertexData as L } from "./mesh.vertexData.esm.js";
7
+ import { TransformNode as A } from "./transformNode.esm.js";
8
+ import { PickingInfo as z } from "../Collisions/pickingInfo.esm.js";
9
+ import { BoundingInfo as R } from "../Culling/boundingInfo.esm.js";
10
+ import { UniformBuffer as U } from "../Materials/uniformBuffer.esm.js";
11
+ import { _MeshCollisionData as W } from "../Collisions/meshCollisionData.esm.js";
12
+ import { _WarnImport as k } from "../Misc/devTools.esm.js";
13
+ import { extractMinAndMax as G } from "../Maths/math.functions.esm.js";
14
+ import { Color3 as w, Color4 as Y } from "../Maths/math.color.esm.js";
15
+ import { Epsilon as x } from "../Maths/math.constants.esm.js";
16
+ import { Axis as Z } from "../Maths/math.axis.esm.js";
17
+ import { RegisterClass as K } from "../Misc/typeStore.esm.js";
18
+ class Q {
19
+ constructor() {
20
+ this.facetNb = 0, this.partitioningSubdivisions = 10, this.partitioningBBoxRatio = 1.01, this.facetDataEnabled = !1, this.facetParameters = {}, this.bbSize = h.Zero(), this.subDiv = {
21
+ // actual number of subdivisions per axis for ComputeNormals()
22
+ max: 1,
23
+ // eslint-disable-next-line @typescript-eslint/naming-convention
24
+ X: 1,
25
+ // eslint-disable-next-line @typescript-eslint/naming-convention
26
+ Y: 1,
27
+ // eslint-disable-next-line @typescript-eslint/naming-convention
28
+ Z: 1
29
+ }, this.facetDepthSort = !1, this.facetDepthSortEnabled = !1;
30
+ }
31
+ }
32
+ class X {
33
+ constructor() {
34
+ this._hasVertexAlpha = !1, this._useVertexColors = !0, this._numBoneInfluencers = 4, this._applyFog = !0, this._receiveShadows = !1, this._facetData = new Q(), this._visibility = 1, this._skeleton = null, this._layerMask = 268435455, this._computeBonesUsingShaders = !0, this._isActive = !1, this._onlyForInstances = !1, this._isActiveIntermediate = !1, this._onlyForInstancesIntermediate = !1, this._actAsRegularMesh = !1, this._currentLOD = null, this._currentLODIsUpToDate = !1, this._collisionRetryCount = 3, this._morphTargetManager = null, this._renderingGroupId = 0, this._bakedVertexAnimationManager = null, this._material = null, this._positions = null, this._pointerOverDisableMeshTesting = !1, this._meshCollisionData = new W(), this._enableDistantPicking = !1, this._rawBoundingInfo = null;
35
+ }
36
+ }
37
+ class I extends A {
38
+ /**
39
+ * No billboard
40
+ */
41
+ static get BILLBOARDMODE_NONE() {
42
+ return A.BILLBOARDMODE_NONE;
43
+ }
44
+ /** Billboard on X axis */
45
+ static get BILLBOARDMODE_X() {
46
+ return A.BILLBOARDMODE_X;
47
+ }
48
+ /** Billboard on Y axis */
49
+ static get BILLBOARDMODE_Y() {
50
+ return A.BILLBOARDMODE_Y;
51
+ }
52
+ /** Billboard on Z axis */
53
+ static get BILLBOARDMODE_Z() {
54
+ return A.BILLBOARDMODE_Z;
55
+ }
56
+ /** Billboard on all axes */
57
+ static get BILLBOARDMODE_ALL() {
58
+ return A.BILLBOARDMODE_ALL;
59
+ }
60
+ /** Billboard on using position instead of orientation */
61
+ static get BILLBOARDMODE_USE_POSITION() {
62
+ return A.BILLBOARDMODE_USE_POSITION;
63
+ }
64
+ /**
65
+ * Gets the number of facets in the mesh
66
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#what-is-a-mesh-facet
67
+ */
68
+ get facetNb() {
69
+ return this._internalAbstractMeshDataInfo._facetData.facetNb;
70
+ }
71
+ /**
72
+ * Gets or set the number (integer) of subdivisions per axis in the partitioning space
73
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#tweaking-the-partitioning
74
+ */
75
+ get partitioningSubdivisions() {
76
+ return this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions;
77
+ }
78
+ set partitioningSubdivisions(t) {
79
+ this._internalAbstractMeshDataInfo._facetData.partitioningSubdivisions = t;
80
+ }
81
+ /**
82
+ * The ratio (float) to apply to the bounding box size to set to the partitioning space.
83
+ * Ex : 1.01 (default) the partitioning space is 1% bigger than the bounding box
84
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#tweaking-the-partitioning
85
+ */
86
+ get partitioningBBoxRatio() {
87
+ return this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio;
88
+ }
89
+ set partitioningBBoxRatio(t) {
90
+ this._internalAbstractMeshDataInfo._facetData.partitioningBBoxRatio = t;
91
+ }
92
+ /**
93
+ * Gets or sets a boolean indicating that the facets must be depth sorted on next call to `updateFacetData()`.
94
+ * Works only for updatable meshes.
95
+ * Doesn't work with multi-materials
96
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#facet-depth-sort
97
+ */
98
+ get mustDepthSortFacets() {
99
+ return this._internalAbstractMeshDataInfo._facetData.facetDepthSort;
100
+ }
101
+ set mustDepthSortFacets(t) {
102
+ this._internalAbstractMeshDataInfo._facetData.facetDepthSort = t;
103
+ }
104
+ /**
105
+ * The location (Vector3) where the facet depth sort must be computed from.
106
+ * By default, the active camera position.
107
+ * Used only when facet depth sort is enabled
108
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#facet-depth-sort
109
+ */
110
+ get facetDepthSortFrom() {
111
+ return this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom;
112
+ }
113
+ set facetDepthSortFrom(t) {
114
+ this._internalAbstractMeshDataInfo._facetData.facetDepthSortFrom = t;
115
+ }
116
+ /** number of collision detection tries. Change this value if not all collisions are detected and handled properly */
117
+ get collisionRetryCount() {
118
+ return this._internalAbstractMeshDataInfo._collisionRetryCount;
119
+ }
120
+ set collisionRetryCount(t) {
121
+ this._internalAbstractMeshDataInfo._collisionRetryCount = t;
122
+ }
123
+ /**
124
+ * gets a boolean indicating if facetData is enabled
125
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData#what-is-a-mesh-facet
126
+ */
127
+ get isFacetDataEnabled() {
128
+ return this._internalAbstractMeshDataInfo._facetData.facetDataEnabled;
129
+ }
130
+ /**
131
+ * Gets or sets the morph target manager
132
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets
133
+ */
134
+ get morphTargetManager() {
135
+ return this._internalAbstractMeshDataInfo._morphTargetManager;
136
+ }
137
+ set morphTargetManager(t) {
138
+ this._internalAbstractMeshDataInfo._morphTargetManager !== t && (this._internalAbstractMeshDataInfo._morphTargetManager = t, this._syncGeometryWithMorphTargetManager());
139
+ }
140
+ /**
141
+ * Gets or sets the baked vertex animation manager
142
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/baked_texture_animations
143
+ */
144
+ get bakedVertexAnimationManager() {
145
+ return this._internalAbstractMeshDataInfo._bakedVertexAnimationManager;
146
+ }
147
+ set bakedVertexAnimationManager(t) {
148
+ this._internalAbstractMeshDataInfo._bakedVertexAnimationManager !== t && (this._internalAbstractMeshDataInfo._bakedVertexAnimationManager = t, this._markSubMeshesAsAttributesDirty());
149
+ }
150
+ /** @internal */
151
+ _syncGeometryWithMorphTargetManager() {
152
+ }
153
+ /**
154
+ * @internal
155
+ */
156
+ _updateNonUniformScalingState(t) {
157
+ return super._updateNonUniformScalingState(t) ? (this._markSubMeshesAsMiscDirty(), !0) : !1;
158
+ }
159
+ /** @internal */
160
+ get rawBoundingInfo() {
161
+ return this._internalAbstractMeshDataInfo._rawBoundingInfo;
162
+ }
163
+ set rawBoundingInfo(t) {
164
+ this._internalAbstractMeshDataInfo._rawBoundingInfo = t;
165
+ }
166
+ /** Set a function to call when this mesh collides with another one */
167
+ set onCollide(t) {
168
+ this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver && this.onCollideObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver), this._internalAbstractMeshDataInfo._meshCollisionData._onCollideObserver = this.onCollideObservable.add(t);
169
+ }
170
+ /** Set a function to call when the collision's position changes */
171
+ set onCollisionPositionChange(t) {
172
+ this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver && this.onCollisionPositionChangeObservable.remove(this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver), this._internalAbstractMeshDataInfo._meshCollisionData._onCollisionPositionChangeObserver = this.onCollisionPositionChangeObservable.add(t);
173
+ }
174
+ /**
175
+ * Gets or sets mesh visibility between 0 and 1 (default is 1)
176
+ */
177
+ get visibility() {
178
+ return this._internalAbstractMeshDataInfo._visibility;
179
+ }
180
+ /**
181
+ * Gets or sets mesh visibility between 0 and 1 (default is 1)
182
+ */
183
+ set visibility(t) {
184
+ if (this._internalAbstractMeshDataInfo._visibility === t)
185
+ return;
186
+ const e = this._internalAbstractMeshDataInfo._visibility;
187
+ this._internalAbstractMeshDataInfo._visibility = t, (e === 1 && t !== 1 || e !== 1 && t === 1) && this._markSubMeshesAsDirty((i) => {
188
+ i.markAsMiscDirty(), i.markAsPrePassDirty();
189
+ });
190
+ }
191
+ /**
192
+ * Gets or sets the property which disables the test that is checking that the mesh under the pointer is the same than the previous time we tested for it (default: false).
193
+ * Set this property to true if you want thin instances picking to be reported accurately when moving over the mesh.
194
+ * Note that setting this property to true will incur some performance penalties when dealing with pointer events for this mesh so use it sparingly.
195
+ */
196
+ get pointerOverDisableMeshTesting() {
197
+ return this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting;
198
+ }
199
+ set pointerOverDisableMeshTesting(t) {
200
+ this._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting = t;
201
+ }
202
+ /**
203
+ * Specifies the rendering group id for this mesh (0 by default)
204
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/transparent_rendering#rendering-groups
205
+ */
206
+ get renderingGroupId() {
207
+ return this._internalAbstractMeshDataInfo._renderingGroupId;
208
+ }
209
+ set renderingGroupId(t) {
210
+ this._internalAbstractMeshDataInfo._renderingGroupId = t;
211
+ }
212
+ /** Gets or sets current material */
213
+ get material() {
214
+ return this._internalAbstractMeshDataInfo._material;
215
+ }
216
+ set material(t) {
217
+ this._internalAbstractMeshDataInfo._material !== t && (this._internalAbstractMeshDataInfo._material && this._internalAbstractMeshDataInfo._material.meshMap && (this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId] = void 0), this._internalAbstractMeshDataInfo._material = t, t && t.meshMap && (t.meshMap[this.uniqueId] = this), this.onMaterialChangedObservable.hasObservers() && this.onMaterialChangedObservable.notifyObservers(this), this.subMeshes && (this.resetDrawCache(), this._unBindEffect()));
218
+ }
219
+ /**
220
+ * Gets the material used to render the mesh in a specific render pass
221
+ * @param renderPassId render pass id
222
+ * @returns material used for the render pass. If no specific material is used for this render pass, undefined is returned (meaning mesh.material is used for this pass)
223
+ */
224
+ getMaterialForRenderPass(t) {
225
+ var e;
226
+ return (e = this._internalAbstractMeshDataInfo._materialForRenderPass) === null || e === void 0 ? void 0 : e[t];
227
+ }
228
+ /**
229
+ * Sets the material to be used to render the mesh in a specific render pass
230
+ * @param renderPassId render pass id
231
+ * @param material material to use for this render pass. If undefined is passed, no specific material will be used for this render pass but the regular material will be used instead (mesh.material)
232
+ */
233
+ setMaterialForRenderPass(t, e) {
234
+ this.resetDrawCache(t), this._internalAbstractMeshDataInfo._materialForRenderPass || (this._internalAbstractMeshDataInfo._materialForRenderPass = []), this._internalAbstractMeshDataInfo._materialForRenderPass[t] = e;
235
+ }
236
+ /**
237
+ * Gets or sets a boolean indicating that this mesh can receive realtime shadows
238
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/lights/shadows
239
+ */
240
+ get receiveShadows() {
241
+ return this._internalAbstractMeshDataInfo._receiveShadows;
242
+ }
243
+ set receiveShadows(t) {
244
+ this._internalAbstractMeshDataInfo._receiveShadows !== t && (this._internalAbstractMeshDataInfo._receiveShadows = t, this._markSubMeshesAsLightDirty());
245
+ }
246
+ /** Gets or sets a boolean indicating that this mesh contains vertex color data with alpha values */
247
+ get hasVertexAlpha() {
248
+ return this._internalAbstractMeshDataInfo._hasVertexAlpha;
249
+ }
250
+ set hasVertexAlpha(t) {
251
+ this._internalAbstractMeshDataInfo._hasVertexAlpha !== t && (this._internalAbstractMeshDataInfo._hasVertexAlpha = t, this._markSubMeshesAsAttributesDirty(), this._markSubMeshesAsMiscDirty());
252
+ }
253
+ /** Gets or sets a boolean indicating that this mesh needs to use vertex color data to render (if this kind of vertex data is available in the geometry) */
254
+ get useVertexColors() {
255
+ return this._internalAbstractMeshDataInfo._useVertexColors;
256
+ }
257
+ set useVertexColors(t) {
258
+ this._internalAbstractMeshDataInfo._useVertexColors !== t && (this._internalAbstractMeshDataInfo._useVertexColors = t, this._markSubMeshesAsAttributesDirty());
259
+ }
260
+ /**
261
+ * Gets or sets a boolean indicating that bone animations must be computed by the GPU (true by default)
262
+ */
263
+ get computeBonesUsingShaders() {
264
+ return this._internalAbstractMeshDataInfo._computeBonesUsingShaders;
265
+ }
266
+ set computeBonesUsingShaders(t) {
267
+ this._internalAbstractMeshDataInfo._computeBonesUsingShaders !== t && (this._internalAbstractMeshDataInfo._computeBonesUsingShaders = t, this._markSubMeshesAsAttributesDirty());
268
+ }
269
+ /** Gets or sets the number of allowed bone influences per vertex (4 by default) */
270
+ get numBoneInfluencers() {
271
+ return this._internalAbstractMeshDataInfo._numBoneInfluencers;
272
+ }
273
+ set numBoneInfluencers(t) {
274
+ this._internalAbstractMeshDataInfo._numBoneInfluencers !== t && (this._internalAbstractMeshDataInfo._numBoneInfluencers = t, this._markSubMeshesAsAttributesDirty());
275
+ }
276
+ /** Gets or sets a boolean indicating that this mesh will allow fog to be rendered on it (true by default) */
277
+ get applyFog() {
278
+ return this._internalAbstractMeshDataInfo._applyFog;
279
+ }
280
+ set applyFog(t) {
281
+ this._internalAbstractMeshDataInfo._applyFog !== t && (this._internalAbstractMeshDataInfo._applyFog = t, this._markSubMeshesAsMiscDirty());
282
+ }
283
+ /** When enabled, decompose picking matrices for better precision with large values for mesh position and scling */
284
+ get enableDistantPicking() {
285
+ return this._internalAbstractMeshDataInfo._enableDistantPicking;
286
+ }
287
+ set enableDistantPicking(t) {
288
+ this._internalAbstractMeshDataInfo._enableDistantPicking = t;
289
+ }
290
+ /**
291
+ * Gets or sets the current layer mask (default is 0x0FFFFFFF)
292
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/layerMasksAndMultiCam
293
+ */
294
+ get layerMask() {
295
+ return this._internalAbstractMeshDataInfo._layerMask;
296
+ }
297
+ set layerMask(t) {
298
+ t !== this._internalAbstractMeshDataInfo._layerMask && (this._internalAbstractMeshDataInfo._layerMask = t, this._resyncLightSources());
299
+ }
300
+ /**
301
+ * Gets or sets a collision mask used to mask collisions (default is -1).
302
+ * A collision between A and B will happen if A.collisionGroup & b.collisionMask !== 0
303
+ */
304
+ get collisionMask() {
305
+ return this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask;
306
+ }
307
+ set collisionMask(t) {
308
+ this._internalAbstractMeshDataInfo._meshCollisionData._collisionMask = isNaN(t) ? -1 : t;
309
+ }
310
+ /**
311
+ * Gets or sets a collision response flag (default is true).
312
+ * when collisionResponse is false, events are still triggered but colliding entity has no response
313
+ * This helps creating trigger volume when user wants collision feedback events but not position/velocity
314
+ * to respond to the collision.
315
+ */
316
+ get collisionResponse() {
317
+ return this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse;
318
+ }
319
+ set collisionResponse(t) {
320
+ this._internalAbstractMeshDataInfo._meshCollisionData._collisionResponse = t;
321
+ }
322
+ /**
323
+ * Gets or sets the current collision group mask (-1 by default).
324
+ * A collision between A and B will happen if A.collisionGroup & b.collisionMask !== 0
325
+ */
326
+ get collisionGroup() {
327
+ return this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup;
328
+ }
329
+ set collisionGroup(t) {
330
+ this._internalAbstractMeshDataInfo._meshCollisionData._collisionGroup = isNaN(t) ? -1 : t;
331
+ }
332
+ /**
333
+ * Gets or sets current surrounding meshes (null by default).
334
+ *
335
+ * By default collision detection is tested against every mesh in the scene.
336
+ * It is possible to set surroundingMeshes to a defined list of meshes and then only these specified
337
+ * meshes will be tested for the collision.
338
+ *
339
+ * Note: if set to an empty array no collision will happen when this mesh is moved.
340
+ */
341
+ get surroundingMeshes() {
342
+ return this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes;
343
+ }
344
+ set surroundingMeshes(t) {
345
+ this._internalAbstractMeshDataInfo._meshCollisionData._surroundingMeshes = t;
346
+ }
347
+ /** Gets the list of lights affecting that mesh */
348
+ get lightSources() {
349
+ return this._lightSources;
350
+ }
351
+ /** @internal */
352
+ get _positions() {
353
+ return null;
354
+ }
355
+ /**
356
+ * Gets or sets a skeleton to apply skinning transformations
357
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/bonesSkeletons
358
+ */
359
+ set skeleton(t) {
360
+ const e = this._internalAbstractMeshDataInfo._skeleton;
361
+ e && e.needInitialSkinMatrix && e._unregisterMeshWithPoseMatrix(this), t && t.needInitialSkinMatrix && t._registerMeshWithPoseMatrix(this), this._internalAbstractMeshDataInfo._skeleton = t, this._internalAbstractMeshDataInfo._skeleton || (this._bonesTransformMatrices = null), this._markSubMeshesAsAttributesDirty();
362
+ }
363
+ get skeleton() {
364
+ return this._internalAbstractMeshDataInfo._skeleton;
365
+ }
366
+ // Constructor
367
+ /**
368
+ * Creates a new AbstractMesh
369
+ * @param name defines the name of the mesh
370
+ * @param scene defines the hosting scene
371
+ */
372
+ constructor(t, e = null) {
373
+ switch (super(t, e, !1), this._internalAbstractMeshDataInfo = new X(), this._waitingMaterialId = null, this.cullingStrategy = I.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY, this.onCollideObservable = new O(), this.onCollisionPositionChangeObservable = new O(), this.onMaterialChangedObservable = new O(), this.definedFacingForward = !0, this._occlusionQuery = null, this._renderingGroup = null, this.alphaIndex = Number.MAX_VALUE, this.isVisible = !0, this.isPickable = !0, this.isNearPickable = !1, this.isNearGrabbable = !1, this.showSubMeshesBoundingBox = !1, this.isBlocker = !1, this.enablePointerMoveEvents = !1, this.outlineColor = w.Red(), this.outlineWidth = 0.02, this.overlayColor = w.Red(), this.overlayAlpha = 0.5, this.useOctreeForRenderingSelection = !0, this.useOctreeForPicking = !0, this.useOctreeForCollisions = !0, this.alwaysSelectAsActiveMesh = !1, this.doNotSyncBoundingInfo = !1, this.actionManager = null, this.ellipsoid = new h(0.5, 1, 0.5), this.ellipsoidOffset = new h(0, 0, 0), this.edgesWidth = 1, this.edgesColor = new Y(1, 0, 0, 1), this._edgesRenderer = null, this._masterMesh = null, this._boundingInfo = null, this._boundingInfoIsDirty = !0, this._renderId = 0, this._intersectionsInProgress = new Array(), this._unIndexed = !1, this._lightSources = new Array(), this._waitingData = {
374
+ lods: null,
375
+ actions: null,
376
+ freezeWorldMatrix: null
377
+ }, this._bonesTransformMatrices = null, this._transformMatrixTexture = null, this.onRebuildObservable = new O(), this._onCollisionPositionChange = (i, n, r = null) => {
378
+ n.subtractToRef(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions, this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions), this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions.length() > V.CollisionsEpsilon && this.position.addInPlace(this._internalAbstractMeshDataInfo._meshCollisionData._diffPositionForCollisions), r && this.onCollideObservable.notifyObservers(r), this.onCollisionPositionChangeObservable.notifyObservers(this.position);
379
+ }, e = this.getScene(), e.addMesh(this), this._resyncLightSources(), this._uniformBuffer = new U(this.getScene().getEngine(), void 0, void 0, t, !this.getScene().getEngine().isWebGPU), this._buildUniformLayout(), e.performancePriority) {
380
+ case T.Aggressive:
381
+ this.doNotSyncBoundingInfo = !0;
382
+ case T.Intermediate:
383
+ this.alwaysSelectAsActiveMesh = !0, this.isPickable = !1;
384
+ break;
385
+ }
386
+ }
387
+ _buildUniformLayout() {
388
+ this._uniformBuffer.addUniform("world", 16), this._uniformBuffer.addUniform("visibility", 1), this._uniformBuffer.create();
389
+ }
390
+ /**
391
+ * Transfer the mesh values to its UBO.
392
+ * @param world The world matrix associated with the mesh
393
+ */
394
+ transferToEffect(t) {
395
+ const e = this._uniformBuffer;
396
+ e.updateMatrix("world", t), e.updateFloat("visibility", this._internalAbstractMeshDataInfo._visibility), e.update();
397
+ }
398
+ /**
399
+ * Gets the mesh uniform buffer.
400
+ * @returns the uniform buffer of the mesh.
401
+ */
402
+ getMeshUniformBuffer() {
403
+ return this._uniformBuffer;
404
+ }
405
+ /**
406
+ * Returns the string "AbstractMesh"
407
+ * @returns "AbstractMesh"
408
+ */
409
+ getClassName() {
410
+ return "AbstractMesh";
411
+ }
412
+ /**
413
+ * Gets a string representation of the current mesh
414
+ * @param fullDetails defines a boolean indicating if full details must be included
415
+ * @returns a string representation of the current mesh
416
+ */
417
+ toString(t) {
418
+ let e = "Name: " + this.name + ", isInstance: " + (this.getClassName() !== "InstancedMesh" ? "YES" : "NO");
419
+ e += ", # of submeshes: " + (this.subMeshes ? this.subMeshes.length : 0);
420
+ const i = this._internalAbstractMeshDataInfo._skeleton;
421
+ return i && (e += ", skeleton: " + i.name), t && (e += ", billboard mode: " + ["NONE", "X", "Y", null, "Z", null, null, "ALL"][this.billboardMode], e += ", freeze wrld mat: " + (this._isWorldMatrixFrozen || this._waitingData.freezeWorldMatrix ? "YES" : "NO")), e;
422
+ }
423
+ /**
424
+ * @internal
425
+ */
426
+ _getEffectiveParent() {
427
+ return this._masterMesh && this.billboardMode !== A.BILLBOARDMODE_NONE ? this._masterMesh : super._getEffectiveParent();
428
+ }
429
+ /**
430
+ * @internal
431
+ */
432
+ _getActionManagerForTrigger(t, e = !0) {
433
+ if (this.actionManager && (e || this.actionManager.isRecursive))
434
+ if (t) {
435
+ if (this.actionManager.hasSpecificTrigger(t))
436
+ return this.actionManager;
437
+ } else
438
+ return this.actionManager;
439
+ return this.parent ? this.parent._getActionManagerForTrigger(t, !1) : null;
440
+ }
441
+ /**
442
+ * @internal
443
+ */
444
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
445
+ _rebuild(t = !1) {
446
+ if (this.onRebuildObservable.notifyObservers(this), this._occlusionQuery !== null && (this._occlusionQuery = null), !!this.subMeshes)
447
+ for (const e of this.subMeshes)
448
+ e._rebuild();
449
+ }
450
+ /** @internal */
451
+ _resyncLightSources() {
452
+ this._lightSources.length = 0;
453
+ for (const t of this.getScene().lights)
454
+ t.isEnabled() && t.canAffectMesh(this) && this._lightSources.push(t);
455
+ this._markSubMeshesAsLightDirty();
456
+ }
457
+ /**
458
+ * @internal
459
+ */
460
+ _resyncLightSource(t) {
461
+ const e = t.isEnabled() && t.canAffectMesh(this), i = this._lightSources.indexOf(t);
462
+ let n = !1;
463
+ if (i === -1) {
464
+ if (!e)
465
+ return;
466
+ this._lightSources.push(t);
467
+ } else {
468
+ if (e)
469
+ return;
470
+ n = !0, this._lightSources.splice(i, 1);
471
+ }
472
+ this._markSubMeshesAsLightDirty(n);
473
+ }
474
+ /** @internal */
475
+ _unBindEffect() {
476
+ for (const t of this.subMeshes)
477
+ t.setEffect(null);
478
+ }
479
+ /**
480
+ * @internal
481
+ */
482
+ _removeLightSource(t, e) {
483
+ const i = this._lightSources.indexOf(t);
484
+ i !== -1 && (this._lightSources.splice(i, 1), this._markSubMeshesAsLightDirty(e));
485
+ }
486
+ _markSubMeshesAsDirty(t) {
487
+ if (this.subMeshes)
488
+ for (const e of this.subMeshes)
489
+ for (let i = 0; i < e._drawWrappers.length; ++i) {
490
+ const n = e._drawWrappers[i];
491
+ !n || !n.defines || !n.defines.markAllAsDirty || t(n.defines);
492
+ }
493
+ }
494
+ /**
495
+ * @internal
496
+ */
497
+ _markSubMeshesAsLightDirty(t = !1) {
498
+ this._markSubMeshesAsDirty((e) => e.markAsLightDirty(t));
499
+ }
500
+ /** @internal */
501
+ _markSubMeshesAsAttributesDirty() {
502
+ this._markSubMeshesAsDirty((t) => t.markAsAttributesDirty());
503
+ }
504
+ /** @internal */
505
+ _markSubMeshesAsMiscDirty() {
506
+ this._markSubMeshesAsDirty((t) => t.markAsMiscDirty());
507
+ }
508
+ /**
509
+ * Flag the AbstractMesh as dirty (Forcing it to update everything)
510
+ * @param property if set to "rotation" the objects rotationQuaternion will be set to null
511
+ * @returns this AbstractMesh
512
+ */
513
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
514
+ markAsDirty(t) {
515
+ return this._currentRenderId = Number.MAX_VALUE, this._isDirty = !0, this;
516
+ }
517
+ /**
518
+ * Resets the draw wrappers cache for all submeshes of this abstract mesh
519
+ * @param passId If provided, releases only the draw wrapper corresponding to this render pass id
520
+ */
521
+ resetDrawCache(t) {
522
+ if (this.subMeshes)
523
+ for (const e of this.subMeshes)
524
+ e.resetDrawCache(t);
525
+ }
526
+ // Methods
527
+ /**
528
+ * Returns true if the mesh is blocked. Implemented by child classes
529
+ */
530
+ get isBlocked() {
531
+ return !1;
532
+ }
533
+ /**
534
+ * Returns the mesh itself by default. Implemented by child classes
535
+ * @param camera defines the camera to use to pick the right LOD level
536
+ * @returns the currentAbstractMesh
537
+ */
538
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
539
+ getLOD(t) {
540
+ return this;
541
+ }
542
+ /**
543
+ * Returns 0 by default. Implemented by child classes
544
+ * @returns an integer
545
+ */
546
+ getTotalVertices() {
547
+ return 0;
548
+ }
549
+ /**
550
+ * Returns a positive integer : the total number of indices in this mesh geometry.
551
+ * @returns the number of indices or zero if the mesh has no geometry.
552
+ */
553
+ getTotalIndices() {
554
+ return 0;
555
+ }
556
+ /**
557
+ * Returns null by default. Implemented by child classes
558
+ * @returns null
559
+ */
560
+ getIndices() {
561
+ return null;
562
+ }
563
+ /**
564
+ * Returns the array of the requested vertex data kind. Implemented by child classes
565
+ * @param kind defines the vertex data kind to use
566
+ * @returns null
567
+ */
568
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
569
+ getVerticesData(t) {
570
+ return null;
571
+ }
572
+ /**
573
+ * Sets the vertex data of the mesh geometry for the requested `kind`.
574
+ * If the mesh has no geometry, a new Geometry object is set to the mesh and then passed this vertex data.
575
+ * Note that a new underlying VertexBuffer object is created each call.
576
+ * If the `kind` is the `PositionKind`, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed.
577
+ * @param kind defines vertex data kind:
578
+ * * VertexBuffer.PositionKind
579
+ * * VertexBuffer.UVKind
580
+ * * VertexBuffer.UV2Kind
581
+ * * VertexBuffer.UV3Kind
582
+ * * VertexBuffer.UV4Kind
583
+ * * VertexBuffer.UV5Kind
584
+ * * VertexBuffer.UV6Kind
585
+ * * VertexBuffer.ColorKind
586
+ * * VertexBuffer.MatricesIndicesKind
587
+ * * VertexBuffer.MatricesIndicesExtraKind
588
+ * * VertexBuffer.MatricesWeightsKind
589
+ * * VertexBuffer.MatricesWeightsExtraKind
590
+ * @param data defines the data source
591
+ * @param updatable defines if the data must be flagged as updatable (or static)
592
+ * @param stride defines the vertex stride (size of an entire vertex). Can be null and in this case will be deduced from vertex data kind
593
+ * @returns the current mesh
594
+ */
595
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
596
+ setVerticesData(t, e, i, n) {
597
+ return this;
598
+ }
599
+ /**
600
+ * Updates the existing vertex data of the mesh geometry for the requested `kind`.
601
+ * If the mesh has no geometry, it is simply returned as it is.
602
+ * @param kind defines vertex data kind:
603
+ * * VertexBuffer.PositionKind
604
+ * * VertexBuffer.UVKind
605
+ * * VertexBuffer.UV2Kind
606
+ * * VertexBuffer.UV3Kind
607
+ * * VertexBuffer.UV4Kind
608
+ * * VertexBuffer.UV5Kind
609
+ * * VertexBuffer.UV6Kind
610
+ * * VertexBuffer.ColorKind
611
+ * * VertexBuffer.MatricesIndicesKind
612
+ * * VertexBuffer.MatricesIndicesExtraKind
613
+ * * VertexBuffer.MatricesWeightsKind
614
+ * * VertexBuffer.MatricesWeightsExtraKind
615
+ * @param data defines the data source
616
+ * @param updateExtends If `kind` is `PositionKind` and if `updateExtends` is true, the mesh BoundingInfo is renewed, so the bounding box and sphere, and the mesh World Matrix is recomputed
617
+ * @param makeItUnique If true, a new global geometry is created from this data and is set to the mesh
618
+ * @returns the current mesh
619
+ */
620
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
621
+ updateVerticesData(t, e, i, n) {
622
+ return this;
623
+ }
624
+ /**
625
+ * Sets the mesh indices,
626
+ * If the mesh has no geometry, a new Geometry object is created and set to the mesh.
627
+ * @param indices Expects an array populated with integers or a typed array (Int32Array, Uint32Array, Uint16Array)
628
+ * @param totalVertices Defines the total number of vertices
629
+ * @returns the current mesh
630
+ */
631
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
632
+ setIndices(t, e) {
633
+ return this;
634
+ }
635
+ /**
636
+ * Gets a boolean indicating if specific vertex data is present
637
+ * @param kind defines the vertex data kind to use
638
+ * @returns true is data kind is present
639
+ */
640
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
641
+ isVerticesDataPresent(t) {
642
+ return !1;
643
+ }
644
+ /**
645
+ * Returns the mesh BoundingInfo object or creates a new one and returns if it was undefined.
646
+ * Note that it returns a shallow bounding of the mesh (i.e. it does not include children).
647
+ * However, if the mesh contains thin instances, it will be expanded to include them. If you want the "raw" bounding data instead, then use `getRawBoundingInfo()`.
648
+ * To get the full bounding of all children, call `getHierarchyBoundingVectors` instead.
649
+ * @returns a BoundingInfo
650
+ */
651
+ getBoundingInfo() {
652
+ return this._masterMesh ? this._masterMesh.getBoundingInfo() : (this._boundingInfoIsDirty && (this._boundingInfoIsDirty = !1, this._updateBoundingInfo()), this._boundingInfo);
653
+ }
654
+ /**
655
+ * Returns the bounding info unnafected by instance data.
656
+ * @returns the bounding info of the mesh unaffected by instance data.
657
+ */
658
+ getRawBoundingInfo() {
659
+ var t;
660
+ return (t = this.rawBoundingInfo) !== null && t !== void 0 ? t : this.getBoundingInfo();
661
+ }
662
+ /**
663
+ * Overwrite the current bounding info
664
+ * @param boundingInfo defines the new bounding info
665
+ * @returns the current mesh
666
+ */
667
+ setBoundingInfo(t) {
668
+ return this._boundingInfo = t, this;
669
+ }
670
+ /**
671
+ * Returns true if there is already a bounding info
672
+ */
673
+ get hasBoundingInfo() {
674
+ return this._boundingInfo !== null;
675
+ }
676
+ /**
677
+ * Creates a new bounding info for the mesh
678
+ * @param minimum min vector of the bounding box/sphere
679
+ * @param maximum max vector of the bounding box/sphere
680
+ * @param worldMatrix defines the new world matrix
681
+ * @returns the new bounding info
682
+ */
683
+ buildBoundingInfo(t, e, i) {
684
+ return this._boundingInfo = new R(t, e, i), this._boundingInfo;
685
+ }
686
+ /**
687
+ * Uniformly scales the mesh to fit inside of a unit cube (1 X 1 X 1 units)
688
+ * @param includeDescendants Use the hierarchy's bounding box instead of the mesh's bounding box. Default is false
689
+ * @param ignoreRotation ignore rotation when computing the scale (ie. object will be axis aligned). Default is false
690
+ * @param predicate predicate that is passed in to getHierarchyBoundingVectors when selecting which object should be included when scaling
691
+ * @returns the current mesh
692
+ */
693
+ normalizeToUnitCube(t = !0, e = !1, i) {
694
+ return super.normalizeToUnitCube(t, e, i);
695
+ }
696
+ /** Gets a boolean indicating if this mesh has skinning data and an attached skeleton */
697
+ get useBones() {
698
+ return this.skeleton && this.getScene().skeletonsEnabled && this.isVerticesDataPresent(m.MatricesIndicesKind) && this.isVerticesDataPresent(m.MatricesWeightsKind);
699
+ }
700
+ /** @internal */
701
+ _preActivate() {
702
+ }
703
+ /**
704
+ * @internal
705
+ */
706
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
707
+ _preActivateForIntermediateRendering(t) {
708
+ }
709
+ /**
710
+ * @internal
711
+ */
712
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
713
+ _activate(t, e) {
714
+ return this._renderId = t, !0;
715
+ }
716
+ /** @internal */
717
+ _postActivate() {
718
+ }
719
+ /** @internal */
720
+ _freeze() {
721
+ }
722
+ /** @internal */
723
+ _unFreeze() {
724
+ }
725
+ /**
726
+ * Gets the current world matrix
727
+ * @returns a Matrix
728
+ */
729
+ getWorldMatrix() {
730
+ return this._masterMesh && this.billboardMode === A.BILLBOARDMODE_NONE ? this._masterMesh.getWorldMatrix() : super.getWorldMatrix();
731
+ }
732
+ /** @internal */
733
+ _getWorldMatrixDeterminant() {
734
+ return this._masterMesh ? this._masterMesh._getWorldMatrixDeterminant() : super._getWorldMatrixDeterminant();
735
+ }
736
+ /**
737
+ * Gets a boolean indicating if this mesh is an instance or a regular mesh
738
+ */
739
+ get isAnInstance() {
740
+ return !1;
741
+ }
742
+ /**
743
+ * Gets a boolean indicating if this mesh has instances
744
+ */
745
+ get hasInstances() {
746
+ return !1;
747
+ }
748
+ /**
749
+ * Gets a boolean indicating if this mesh has thin instances
750
+ */
751
+ get hasThinInstances() {
752
+ return !1;
753
+ }
754
+ // ================================== Point of View Movement =================================
755
+ /**
756
+ * Perform relative position change from the point of view of behind the front of the mesh.
757
+ * This is performed taking into account the meshes current rotation, so you do not have to care.
758
+ * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.
759
+ * @param amountRight defines the distance on the right axis
760
+ * @param amountUp defines the distance on the up axis
761
+ * @param amountForward defines the distance on the forward axis
762
+ * @returns the current mesh
763
+ */
764
+ movePOV(t, e, i) {
765
+ return this.position.addInPlace(this.calcMovePOV(t, e, i)), this;
766
+ }
767
+ /**
768
+ * Calculate relative position change from the point of view of behind the front of the mesh.
769
+ * This is performed taking into account the meshes current rotation, so you do not have to care.
770
+ * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.
771
+ * @param amountRight defines the distance on the right axis
772
+ * @param amountUp defines the distance on the up axis
773
+ * @param amountForward defines the distance on the forward axis
774
+ * @returns the new displacement vector
775
+ */
776
+ calcMovePOV(t, e, i) {
777
+ const n = new y();
778
+ (this.rotationQuaternion ? this.rotationQuaternion : N.RotationYawPitchRoll(this.rotation.y, this.rotation.x, this.rotation.z)).toRotationMatrix(n);
779
+ const a = h.Zero(), s = this.definedFacingForward ? -1 : 1;
780
+ return h.TransformCoordinatesFromFloatsToRef(t * s, e, i * s, n, a), a;
781
+ }
782
+ // ================================== Point of View Rotation =================================
783
+ /**
784
+ * Perform relative rotation change from the point of view of behind the front of the mesh.
785
+ * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.
786
+ * @param flipBack defines the flip
787
+ * @param twirlClockwise defines the twirl
788
+ * @param tiltRight defines the tilt
789
+ * @returns the current mesh
790
+ */
791
+ rotatePOV(t, e, i) {
792
+ return this.rotation.addInPlace(this.calcRotatePOV(t, e, i)), this;
793
+ }
794
+ /**
795
+ * Calculate relative rotation change from the point of view of behind the front of the mesh.
796
+ * Supports definition of mesh facing forward or backward {@link definedFacingForwardSearch | See definedFacingForwardSearch }.
797
+ * @param flipBack defines the flip
798
+ * @param twirlClockwise defines the twirl
799
+ * @param tiltRight defines the tilt
800
+ * @returns the new rotation vector
801
+ */
802
+ calcRotatePOV(t, e, i) {
803
+ const n = this.definedFacingForward ? 1 : -1;
804
+ return new h(t * n, e, i * n);
805
+ }
806
+ /**
807
+ * This method recomputes and sets a new BoundingInfo to the mesh unless it is locked.
808
+ * This means the mesh underlying bounding box and sphere are recomputed.
809
+ * @param applySkeleton defines whether to apply the skeleton before computing the bounding info
810
+ * @param applyMorph defines whether to apply the morph target before computing the bounding info
811
+ * @returns the current mesh
812
+ */
813
+ refreshBoundingInfo(t = !1, e = !1) {
814
+ return this._boundingInfo && this._boundingInfo.isLocked ? this : (this._refreshBoundingInfo(this._getPositionData(t, e), null), this);
815
+ }
816
+ /**
817
+ * @internal
818
+ */
819
+ _refreshBoundingInfo(t, e) {
820
+ if (t) {
821
+ const i = G(t, 0, this.getTotalVertices(), e);
822
+ this._boundingInfo ? this._boundingInfo.reConstruct(i.minimum, i.maximum) : this._boundingInfo = new R(i.minimum, i.maximum);
823
+ }
824
+ if (this.subMeshes)
825
+ for (let i = 0; i < this.subMeshes.length; i++)
826
+ this.subMeshes[i].refreshBoundingInfo(t);
827
+ this._updateBoundingInfo();
828
+ }
829
+ /**
830
+ * Internal function to get buffer data and possibly apply morphs and normals
831
+ * @param applySkeleton
832
+ * @param applyMorph
833
+ * @param data
834
+ * @param kind the kind of data you want. Can be Normal or Position
835
+ */
836
+ _getData(t = !1, e = !1, i, n = m.PositionKind) {
837
+ if (i = i ?? this.getVerticesData(n).slice(), i && e && this.morphTargetManager) {
838
+ let r = 0, a = 0;
839
+ for (let s = 0; s < i.length; s++) {
840
+ for (let o = 0; o < this.morphTargetManager.numTargets; o++) {
841
+ const f = this.morphTargetManager.getTarget(o), d = f.influence;
842
+ if (d > 0) {
843
+ const l = f.getPositions();
844
+ l && (i[s] += (l[s] - i[s]) * d);
845
+ }
846
+ }
847
+ if (r++, n === m.PositionKind && this._positions && r === 3) {
848
+ r = 0;
849
+ const o = a * 3;
850
+ this._positions[a++].copyFromFloats(i[o], i[o + 1], i[o + 2]);
851
+ }
852
+ }
853
+ }
854
+ if (i && t && this.skeleton) {
855
+ const r = this.getVerticesData(m.MatricesIndicesKind), a = this.getVerticesData(m.MatricesWeightsKind);
856
+ if (a && r) {
857
+ const s = this.numBoneInfluencers > 4, o = s ? this.getVerticesData(m.MatricesIndicesExtraKind) : null, f = s ? this.getVerticesData(m.MatricesWeightsExtraKind) : null, d = this.skeleton.getTransformMatrices(this), l = p.Vector3[0], _ = p.Matrix[0], M = p.Matrix[1];
858
+ let D = 0;
859
+ for (let c = 0; c < i.length; c += 3, D += 4) {
860
+ _.reset();
861
+ let g, u;
862
+ for (g = 0; g < 4; g++)
863
+ u = a[D + g], u > 0 && (y.FromFloat32ArrayToRefScaled(d, Math.floor(r[D + g] * 16), u, M), _.addToSelf(M));
864
+ if (s)
865
+ for (g = 0; g < 4; g++)
866
+ u = f[D + g], u > 0 && (y.FromFloat32ArrayToRefScaled(d, Math.floor(o[D + g] * 16), u, M), _.addToSelf(M));
867
+ n === m.NormalKind ? h.TransformNormalFromFloatsToRef(i[c], i[c + 1], i[c + 2], _, l) : h.TransformCoordinatesFromFloatsToRef(i[c], i[c + 1], i[c + 2], _, l), l.toArray(i, c), n === m.PositionKind && this._positions && this._positions[c / 3].copyFrom(l);
868
+ }
869
+ }
870
+ }
871
+ return i;
872
+ }
873
+ /**
874
+ * Get the normals vertex data and optionally apply skeleton and morphing.
875
+ * @param applySkeleton defines whether to apply the skeleton
876
+ * @param applyMorph defines whether to apply the morph target
877
+ * @returns the normals data
878
+ */
879
+ getNormalsData(t = !1, e = !1) {
880
+ return this._getData(t, e, null, m.NormalKind);
881
+ }
882
+ /**
883
+ * Get the position vertex data and optionally apply skeleton and morphing.
884
+ * @param applySkeleton defines whether to apply the skeleton
885
+ * @param applyMorph defines whether to apply the morph target
886
+ * @param data defines the position data to apply the skeleton and morph to
887
+ * @returns the position data
888
+ */
889
+ getPositionData(t = !1, e = !1, i) {
890
+ return this._getData(t, e, i, m.PositionKind);
891
+ }
892
+ /**
893
+ * @internal
894
+ */
895
+ _getPositionData(t, e) {
896
+ var i;
897
+ let n = this.getVerticesData(m.PositionKind);
898
+ if (this._internalAbstractMeshDataInfo._positions && (this._internalAbstractMeshDataInfo._positions = null), n && (t && this.skeleton || e && this.morphTargetManager)) {
899
+ if (n = n.slice(), this._generatePointsArray(), this._positions) {
900
+ const r = this._positions;
901
+ this._internalAbstractMeshDataInfo._positions = new Array(r.length);
902
+ for (let a = 0; a < r.length; a++)
903
+ this._internalAbstractMeshDataInfo._positions[a] = ((i = r[a]) === null || i === void 0 ? void 0 : i.clone()) || new h();
904
+ }
905
+ return this.getPositionData(t, e, n);
906
+ }
907
+ return n;
908
+ }
909
+ /** @internal */
910
+ _updateBoundingInfo() {
911
+ return this._boundingInfo ? this._boundingInfo.update(this.worldMatrixFromCache) : this._boundingInfo = new R(h.Zero(), h.Zero(), this.worldMatrixFromCache), this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache), this;
912
+ }
913
+ /**
914
+ * @internal
915
+ */
916
+ _updateSubMeshesBoundingInfo(t) {
917
+ if (!this.subMeshes)
918
+ return this;
919
+ const e = this.subMeshes.length;
920
+ for (let i = 0; i < e; i++) {
921
+ const n = this.subMeshes[i];
922
+ (e > 1 || !n.IsGlobal) && n.updateBoundingInfo(t);
923
+ }
924
+ return this;
925
+ }
926
+ /** @internal */
927
+ _afterComputeWorldMatrix() {
928
+ this.doNotSyncBoundingInfo || (this._boundingInfoIsDirty = !0);
929
+ }
930
+ /**
931
+ * Returns `true` if the mesh is within the frustum defined by the passed array of planes.
932
+ * A mesh is in the frustum if its bounding box intersects the frustum
933
+ * @param frustumPlanes defines the frustum to test
934
+ * @returns true if the mesh is in the frustum planes
935
+ */
936
+ isInFrustum(t) {
937
+ return this.getBoundingInfo().isInFrustum(t, this.cullingStrategy);
938
+ }
939
+ /**
940
+ * Returns `true` if the mesh is completely in the frustum defined be the passed array of planes.
941
+ * A mesh is completely in the frustum if its bounding box it completely inside the frustum.
942
+ * @param frustumPlanes defines the frustum to test
943
+ * @returns true if the mesh is completely in the frustum planes
944
+ */
945
+ isCompletelyInFrustum(t) {
946
+ return this.getBoundingInfo().isCompletelyInFrustum(t);
947
+ }
948
+ /**
949
+ * True if the mesh intersects another mesh or a SolidParticle object
950
+ * @param mesh defines a target mesh or SolidParticle to test
951
+ * @param precise Unless the parameter `precise` is set to `true` the intersection is computed according to Axis Aligned Bounding Boxes (AABB), else according to OBB (Oriented BBoxes)
952
+ * @param includeDescendants Can be set to true to test if the mesh defined in parameters intersects with the current mesh or any child meshes
953
+ * @returns true if there is an intersection
954
+ */
955
+ intersectsMesh(t, e = !1, i) {
956
+ const n = this.getBoundingInfo(), r = t.getBoundingInfo();
957
+ if (n.intersects(r, e))
958
+ return !0;
959
+ if (i) {
960
+ for (const a of this.getChildMeshes())
961
+ if (a.intersectsMesh(t, e, !0))
962
+ return !0;
963
+ }
964
+ return !1;
965
+ }
966
+ /**
967
+ * Returns true if the passed point (Vector3) is inside the mesh bounding box
968
+ * @param point defines the point to test
969
+ * @returns true if there is an intersection
970
+ */
971
+ intersectsPoint(t) {
972
+ return this.getBoundingInfo().intersectsPoint(t);
973
+ }
974
+ // Collisions
975
+ /**
976
+ * Gets or sets a boolean indicating that this mesh can be used in the collision engine
977
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions
978
+ */
979
+ get checkCollisions() {
980
+ return this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions;
981
+ }
982
+ set checkCollisions(t) {
983
+ this._internalAbstractMeshDataInfo._meshCollisionData._checkCollisions = t;
984
+ }
985
+ /**
986
+ * Gets Collider object used to compute collisions (not physics)
987
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions
988
+ */
989
+ get collider() {
990
+ return this._internalAbstractMeshDataInfo._meshCollisionData._collider;
991
+ }
992
+ /**
993
+ * Move the mesh using collision engine
994
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions
995
+ * @param displacement defines the requested displacement vector
996
+ * @returns the current mesh
997
+ */
998
+ moveWithCollisions(t) {
999
+ this.getAbsolutePosition().addToRef(this.ellipsoidOffset, this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions);
1000
+ const i = this.getScene().collisionCoordinator;
1001
+ return this._internalAbstractMeshDataInfo._meshCollisionData._collider || (this._internalAbstractMeshDataInfo._meshCollisionData._collider = i.createCollider()), this._internalAbstractMeshDataInfo._meshCollisionData._collider._radius = this.ellipsoid, i.getNewPosition(this._internalAbstractMeshDataInfo._meshCollisionData._oldPositionForCollisions, t, this._internalAbstractMeshDataInfo._meshCollisionData._collider, this.collisionRetryCount, this, this._onCollisionPositionChange, this.uniqueId), this;
1002
+ }
1003
+ // Collisions
1004
+ /**
1005
+ * @internal
1006
+ */
1007
+ _collideForSubMesh(t, e, i) {
1008
+ var n;
1009
+ if (this._generatePointsArray(), !this._positions)
1010
+ return this;
1011
+ if (!t._lastColliderWorldVertices || !t._lastColliderTransformMatrix.equals(e)) {
1012
+ t._lastColliderTransformMatrix = e.clone(), t._lastColliderWorldVertices = [], t._trianglePlanes = [];
1013
+ const r = t.verticesStart, a = t.verticesStart + t.verticesCount;
1014
+ for (let s = r; s < a; s++)
1015
+ t._lastColliderWorldVertices.push(h.TransformCoordinates(this._positions[s], e));
1016
+ }
1017
+ return i._collide(t._trianglePlanes, t._lastColliderWorldVertices, this.getIndices(), t.indexStart, t.indexStart + t.indexCount, t.verticesStart, !!t.getMaterial(), this, this._shouldConvertRHS(), ((n = t.getMaterial()) === null || n === void 0 ? void 0 : n.fillMode) === 7), this;
1018
+ }
1019
+ /**
1020
+ * @internal
1021
+ */
1022
+ _processCollisionsForSubMeshes(t, e) {
1023
+ const i = this._scene.getCollidingSubMeshCandidates(this, t), n = i.length;
1024
+ for (let r = 0; r < n; r++) {
1025
+ const a = i.data[r];
1026
+ n > 1 && !a._checkCollision(t) || this._collideForSubMesh(a, e, t);
1027
+ }
1028
+ return this;
1029
+ }
1030
+ /** @internal */
1031
+ _shouldConvertRHS() {
1032
+ return !1;
1033
+ }
1034
+ /**
1035
+ * @internal
1036
+ */
1037
+ _checkCollision(t) {
1038
+ if (!this.getBoundingInfo()._checkCollision(t))
1039
+ return this;
1040
+ const e = p.Matrix[0], i = p.Matrix[1];
1041
+ return y.ScalingToRef(1 / t._radius.x, 1 / t._radius.y, 1 / t._radius.z, e), this.worldMatrixFromCache.multiplyToRef(e, i), this._processCollisionsForSubMeshes(t, i), this;
1042
+ }
1043
+ // Picking
1044
+ /** @internal */
1045
+ _generatePointsArray() {
1046
+ return !1;
1047
+ }
1048
+ /**
1049
+ * Checks if the passed Ray intersects with the mesh. A mesh triangle can be picked both from its front and back sides,
1050
+ * irrespective of orientation.
1051
+ * @param ray defines the ray to use. It should be in the mesh's LOCAL coordinate space.
1052
+ * @param fastCheck defines if fast mode (but less precise) must be used (false by default)
1053
+ * @param trianglePredicate defines an optional predicate used to select faces when a mesh intersection is detected
1054
+ * @param onlyBoundingInfo defines a boolean indicating if picking should only happen using bounding info (false by default)
1055
+ * @param worldToUse defines the world matrix to use to get the world coordinate of the intersection point
1056
+ * @param skipBoundingInfo a boolean indicating if we should skip the bounding info check
1057
+ * @returns the picking info
1058
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/interactions/mesh_intersect
1059
+ */
1060
+ intersects(t, e, i, n = !1, r, a = !1) {
1061
+ const s = new z(), o = this.getClassName(), f = o === "InstancedLinesMesh" || o === "LinesMesh" || o === "GreasedLineMesh" ? this.intersectionThreshold : 0, d = this.getBoundingInfo();
1062
+ if (!this.subMeshes || !a && (!t.intersectsSphere(d.boundingSphere, f) || !t.intersectsBox(d.boundingBox, f)))
1063
+ return s;
1064
+ if (n)
1065
+ return s.hit = !a, s.pickedMesh = a ? null : this, s.distance = a ? 0 : h.Distance(t.origin, d.boundingSphere.center), s.subMeshId = 0, s;
1066
+ if (!this._generatePointsArray())
1067
+ return s;
1068
+ let l = null;
1069
+ const _ = this._scene.getIntersectingSubMeshCandidates(this, t), M = _.length;
1070
+ let D = !1;
1071
+ for (let c = 0; c < M; c++) {
1072
+ const u = _.data[c].getMaterial();
1073
+ if (u && (u.fillMode == 7 || u.fillMode == 0 || u.fillMode == 1 || u.fillMode == 2 || u.fillMode == 4)) {
1074
+ D = !0;
1075
+ break;
1076
+ }
1077
+ }
1078
+ if (!D)
1079
+ return s.hit = !0, s.pickedMesh = this, s.distance = h.Distance(t.origin, d.boundingSphere.center), s.subMeshId = -1, s;
1080
+ for (let c = 0; c < M; c++) {
1081
+ const g = _.data[c];
1082
+ if (M > 1 && !g.canIntersects(t))
1083
+ continue;
1084
+ const u = g.intersects(t, this._positions, this.getIndices(), e, i);
1085
+ if (u && (e || !l || u.distance < l.distance) && (l = u, l.subMeshId = c, e))
1086
+ break;
1087
+ }
1088
+ if (l) {
1089
+ const c = r ?? this.getWorldMatrix(), g = p.Vector3[0], u = p.Vector3[1];
1090
+ h.TransformCoordinatesToRef(t.origin, c, g), t.direction.scaleToRef(l.distance, u);
1091
+ const C = h.TransformNormal(u, c).addInPlace(g);
1092
+ return s.hit = !0, s.distance = h.Distance(g, C), s.pickedPoint = C, s.pickedMesh = this, s.bu = l.bu || 0, s.bv = l.bv || 0, s.subMeshFaceId = l.faceId, s.faceId = l.faceId + _.data[l.subMeshId].indexStart / (this.getClassName().indexOf("LinesMesh") !== -1 ? 2 : 3), s.subMeshId = l.subMeshId, s;
1093
+ }
1094
+ return s;
1095
+ }
1096
+ /**
1097
+ * Clones the current mesh
1098
+ * @param name defines the mesh name
1099
+ * @param newParent defines the new mesh parent
1100
+ * @param doNotCloneChildren defines a boolean indicating that children must not be cloned (false by default)
1101
+ * @returns the new mesh
1102
+ */
1103
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1104
+ clone(t, e, i) {
1105
+ return null;
1106
+ }
1107
+ /**
1108
+ * Disposes all the submeshes of the current meshnp
1109
+ * @returns the current mesh
1110
+ */
1111
+ releaseSubMeshes() {
1112
+ if (this.subMeshes)
1113
+ for (; this.subMeshes.length; )
1114
+ this.subMeshes[0].dispose();
1115
+ else
1116
+ this.subMeshes = new Array();
1117
+ return this;
1118
+ }
1119
+ /**
1120
+ * Releases resources associated with this abstract mesh.
1121
+ * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)
1122
+ * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)
1123
+ */
1124
+ dispose(t, e = !1) {
1125
+ let i;
1126
+ for (this._scene.useMaterialMeshMap && this._internalAbstractMeshDataInfo._material && this._internalAbstractMeshDataInfo._material.meshMap && (this._internalAbstractMeshDataInfo._material.meshMap[this.uniqueId] = void 0), this.getScene().freeActiveMeshes(), this.getScene().freeRenderingGroups(), this.actionManager !== void 0 && this.actionManager !== null && (this.actionManager.dispose(), this.actionManager = null), this._internalAbstractMeshDataInfo._skeleton = null, this._transformMatrixTexture && (this._transformMatrixTexture.dispose(), this._transformMatrixTexture = null), i = 0; i < this._intersectionsInProgress.length; i++) {
1127
+ const a = this._intersectionsInProgress[i], s = a._intersectionsInProgress.indexOf(this);
1128
+ a._intersectionsInProgress.splice(s, 1);
1129
+ }
1130
+ this._intersectionsInProgress.length = 0, this.getScene().lights.forEach((a) => {
1131
+ let s = a.includedOnlyMeshes.indexOf(this);
1132
+ s !== -1 && a.includedOnlyMeshes.splice(s, 1), s = a.excludedMeshes.indexOf(this), s !== -1 && a.excludedMeshes.splice(s, 1);
1133
+ const o = a.getShadowGenerators();
1134
+ if (o) {
1135
+ const f = o.values();
1136
+ for (let d = f.next(); d.done !== !0; d = f.next()) {
1137
+ const _ = d.value.getShadowMap();
1138
+ _ && _.renderList && (s = _.renderList.indexOf(this), s !== -1 && _.renderList.splice(s, 1));
1139
+ }
1140
+ }
1141
+ }), (this.getClassName() !== "InstancedMesh" || this.getClassName() !== "InstancedLinesMesh") && this.releaseSubMeshes();
1142
+ const r = this.getScene().getEngine();
1143
+ if (this._occlusionQuery !== null && (this.isOcclusionQueryInProgress = !1, r.deleteQuery(this._occlusionQuery), this._occlusionQuery = null), r.wipeCaches(), this.getScene().removeMesh(this), this._parentContainer) {
1144
+ const a = this._parentContainer.meshes.indexOf(this);
1145
+ a > -1 && this._parentContainer.meshes.splice(a, 1), this._parentContainer = null;
1146
+ }
1147
+ if (e && this.material && (this.material.getClassName() === "MultiMaterial" ? this.material.dispose(!1, !0, !0) : this.material.dispose(!1, !0)), !t)
1148
+ for (i = 0; i < this.getScene().particleSystems.length; i++)
1149
+ this.getScene().particleSystems[i].emitter === this && (this.getScene().particleSystems[i].dispose(), i--);
1150
+ this._internalAbstractMeshDataInfo._facetData.facetDataEnabled && this.disableFacetData(), this._uniformBuffer.dispose(), this.onAfterWorldMatrixUpdateObservable.clear(), this.onCollideObservable.clear(), this.onCollisionPositionChangeObservable.clear(), this.onRebuildObservable.clear(), super.dispose(t, e);
1151
+ }
1152
+ /**
1153
+ * Adds the passed mesh as a child to the current mesh
1154
+ * @param mesh defines the child mesh
1155
+ * @param preserveScalingSign if true, keep scaling sign of child. Otherwise, scaling sign might change.
1156
+ * @returns the current mesh
1157
+ */
1158
+ addChild(t, e = !1) {
1159
+ return t.setParent(this, e), this;
1160
+ }
1161
+ /**
1162
+ * Removes the passed mesh from the current mesh children list
1163
+ * @param mesh defines the child mesh
1164
+ * @param preserveScalingSign if true, keep scaling sign of child. Otherwise, scaling sign might change.
1165
+ * @returns the current mesh
1166
+ */
1167
+ removeChild(t, e = !1) {
1168
+ return t.setParent(null, e), this;
1169
+ }
1170
+ // Facet data
1171
+ /** @internal */
1172
+ _initFacetData() {
1173
+ const t = this._internalAbstractMeshDataInfo._facetData;
1174
+ t.facetNormals || (t.facetNormals = new Array()), t.facetPositions || (t.facetPositions = new Array()), t.facetPartitioning || (t.facetPartitioning = new Array()), t.facetNb = this.getIndices().length / 3 | 0, t.partitioningSubdivisions = t.partitioningSubdivisions ? t.partitioningSubdivisions : 10, t.partitioningBBoxRatio = t.partitioningBBoxRatio ? t.partitioningBBoxRatio : 1.01;
1175
+ for (let e = 0; e < t.facetNb; e++)
1176
+ t.facetNormals[e] = h.Zero(), t.facetPositions[e] = h.Zero();
1177
+ return t.facetDataEnabled = !0, this;
1178
+ }
1179
+ /**
1180
+ * Updates the mesh facetData arrays and the internal partitioning when the mesh is morphed or updated.
1181
+ * This method can be called within the render loop.
1182
+ * You don't need to call this method by yourself in the render loop when you update/morph a mesh with the methods CreateXXX() as they automatically manage this computation
1183
+ * @returns the current mesh
1184
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1185
+ */
1186
+ updateFacetData() {
1187
+ const t = this._internalAbstractMeshDataInfo._facetData;
1188
+ t.facetDataEnabled || this._initFacetData();
1189
+ const e = this.getVerticesData(m.PositionKind), i = this.getIndices(), n = this.getVerticesData(m.NormalKind), r = this.getBoundingInfo();
1190
+ if (t.facetDepthSort && !t.facetDepthSortEnabled) {
1191
+ if (t.facetDepthSortEnabled = !0, i instanceof Uint16Array)
1192
+ t.depthSortedIndices = new Uint16Array(i);
1193
+ else if (i instanceof Uint32Array)
1194
+ t.depthSortedIndices = new Uint32Array(i);
1195
+ else {
1196
+ let s = !1;
1197
+ for (let o = 0; o < i.length; o++)
1198
+ if (i[o] > 65535) {
1199
+ s = !0;
1200
+ break;
1201
+ }
1202
+ s ? t.depthSortedIndices = new Uint32Array(i) : t.depthSortedIndices = new Uint16Array(i);
1203
+ }
1204
+ if (t.facetDepthSortFunction = function(s, o) {
1205
+ return o.sqDistance - s.sqDistance;
1206
+ }, !t.facetDepthSortFrom) {
1207
+ const s = this.getScene().activeCamera;
1208
+ t.facetDepthSortFrom = s ? s.position : h.Zero();
1209
+ }
1210
+ t.depthSortedFacets = [];
1211
+ for (let s = 0; s < t.facetNb; s++) {
1212
+ const o = { ind: s * 3, sqDistance: 0 };
1213
+ t.depthSortedFacets.push(o);
1214
+ }
1215
+ t.invertedMatrix = y.Identity(), t.facetDepthSortOrigin = h.Zero();
1216
+ }
1217
+ t.bbSize.x = r.maximum.x - r.minimum.x > x ? r.maximum.x - r.minimum.x : x, t.bbSize.y = r.maximum.y - r.minimum.y > x ? r.maximum.y - r.minimum.y : x, t.bbSize.z = r.maximum.z - r.minimum.z > x ? r.maximum.z - r.minimum.z : x;
1218
+ let a = t.bbSize.x > t.bbSize.y ? t.bbSize.x : t.bbSize.y;
1219
+ if (a = a > t.bbSize.z ? a : t.bbSize.z, t.subDiv.max = t.partitioningSubdivisions, t.subDiv.X = Math.floor(t.subDiv.max * t.bbSize.x / a), t.subDiv.Y = Math.floor(t.subDiv.max * t.bbSize.y / a), t.subDiv.Z = Math.floor(t.subDiv.max * t.bbSize.z / a), t.subDiv.X = t.subDiv.X < 1 ? 1 : t.subDiv.X, t.subDiv.Y = t.subDiv.Y < 1 ? 1 : t.subDiv.Y, t.subDiv.Z = t.subDiv.Z < 1 ? 1 : t.subDiv.Z, t.facetParameters.facetNormals = this.getFacetLocalNormals(), t.facetParameters.facetPositions = this.getFacetLocalPositions(), t.facetParameters.facetPartitioning = this.getFacetLocalPartitioning(), t.facetParameters.bInfo = r, t.facetParameters.bbSize = t.bbSize, t.facetParameters.subDiv = t.subDiv, t.facetParameters.ratio = this.partitioningBBoxRatio, t.facetParameters.depthSort = t.facetDepthSort, t.facetDepthSort && t.facetDepthSortEnabled && (this.computeWorldMatrix(!0), this._worldMatrix.invertToRef(t.invertedMatrix), h.TransformCoordinatesToRef(t.facetDepthSortFrom, t.invertedMatrix, t.facetDepthSortOrigin), t.facetParameters.distanceTo = t.facetDepthSortOrigin), t.facetParameters.depthSortedFacets = t.depthSortedFacets, n && L.ComputeNormals(e, i, n, t.facetParameters), t.facetDepthSort && t.facetDepthSortEnabled) {
1220
+ t.depthSortedFacets.sort(t.facetDepthSortFunction);
1221
+ const s = t.depthSortedIndices.length / 3 | 0;
1222
+ for (let o = 0; o < s; o++) {
1223
+ const f = t.depthSortedFacets[o].ind;
1224
+ t.depthSortedIndices[o * 3] = i[f], t.depthSortedIndices[o * 3 + 1] = i[f + 1], t.depthSortedIndices[o * 3 + 2] = i[f + 2];
1225
+ }
1226
+ this.updateIndices(t.depthSortedIndices, void 0, !0);
1227
+ }
1228
+ return this;
1229
+ }
1230
+ /**
1231
+ * Returns the facetLocalNormals array.
1232
+ * The normals are expressed in the mesh local spac
1233
+ * @returns an array of Vector3
1234
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1235
+ */
1236
+ getFacetLocalNormals() {
1237
+ const t = this._internalAbstractMeshDataInfo._facetData;
1238
+ return t.facetNormals || this.updateFacetData(), t.facetNormals;
1239
+ }
1240
+ /**
1241
+ * Returns the facetLocalPositions array.
1242
+ * The facet positions are expressed in the mesh local space
1243
+ * @returns an array of Vector3
1244
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1245
+ */
1246
+ getFacetLocalPositions() {
1247
+ const t = this._internalAbstractMeshDataInfo._facetData;
1248
+ return t.facetPositions || this.updateFacetData(), t.facetPositions;
1249
+ }
1250
+ /**
1251
+ * Returns the facetLocalPartitioning array
1252
+ * @returns an array of array of numbers
1253
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1254
+ */
1255
+ getFacetLocalPartitioning() {
1256
+ const t = this._internalAbstractMeshDataInfo._facetData;
1257
+ return t.facetPartitioning || this.updateFacetData(), t.facetPartitioning;
1258
+ }
1259
+ /**
1260
+ * Returns the i-th facet position in the world system.
1261
+ * This method allocates a new Vector3 per call
1262
+ * @param i defines the facet index
1263
+ * @returns a new Vector3
1264
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1265
+ */
1266
+ getFacetPosition(t) {
1267
+ const e = h.Zero();
1268
+ return this.getFacetPositionToRef(t, e), e;
1269
+ }
1270
+ /**
1271
+ * Sets the reference Vector3 with the i-th facet position in the world system
1272
+ * @param i defines the facet index
1273
+ * @param ref defines the target vector
1274
+ * @returns the current mesh
1275
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1276
+ */
1277
+ getFacetPositionToRef(t, e) {
1278
+ const i = this.getFacetLocalPositions()[t], n = this.getWorldMatrix();
1279
+ return h.TransformCoordinatesToRef(i, n, e), this;
1280
+ }
1281
+ /**
1282
+ * Returns the i-th facet normal in the world system.
1283
+ * This method allocates a new Vector3 per call
1284
+ * @param i defines the facet index
1285
+ * @returns a new Vector3
1286
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1287
+ */
1288
+ getFacetNormal(t) {
1289
+ const e = h.Zero();
1290
+ return this.getFacetNormalToRef(t, e), e;
1291
+ }
1292
+ /**
1293
+ * Sets the reference Vector3 with the i-th facet normal in the world system
1294
+ * @param i defines the facet index
1295
+ * @param ref defines the target vector
1296
+ * @returns the current mesh
1297
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1298
+ */
1299
+ getFacetNormalToRef(t, e) {
1300
+ const i = this.getFacetLocalNormals()[t];
1301
+ return h.TransformNormalToRef(i, this.getWorldMatrix(), e), this;
1302
+ }
1303
+ /**
1304
+ * Returns the facets (in an array) in the same partitioning block than the one the passed coordinates are located (expressed in the mesh local system)
1305
+ * @param x defines x coordinate
1306
+ * @param y defines y coordinate
1307
+ * @param z defines z coordinate
1308
+ * @returns the array of facet indexes
1309
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1310
+ */
1311
+ getFacetsAtLocalCoordinates(t, e, i) {
1312
+ const n = this.getBoundingInfo(), r = this._internalAbstractMeshDataInfo._facetData, a = Math.floor((t - n.minimum.x * r.partitioningBBoxRatio) * r.subDiv.X * r.partitioningBBoxRatio / r.bbSize.x), s = Math.floor((e - n.minimum.y * r.partitioningBBoxRatio) * r.subDiv.Y * r.partitioningBBoxRatio / r.bbSize.y), o = Math.floor((i - n.minimum.z * r.partitioningBBoxRatio) * r.subDiv.Z * r.partitioningBBoxRatio / r.bbSize.z);
1313
+ return a < 0 || a > r.subDiv.max || s < 0 || s > r.subDiv.max || o < 0 || o > r.subDiv.max ? null : r.facetPartitioning[a + r.subDiv.max * s + r.subDiv.max * r.subDiv.max * o];
1314
+ }
1315
+ /**
1316
+ * Returns the closest mesh facet index at (x,y,z) World coordinates, null if not found
1317
+ * @param x defines x coordinate
1318
+ * @param y defines y coordinate
1319
+ * @param z defines z coordinate
1320
+ * @param projected sets as the (x,y,z) world projection on the facet
1321
+ * @param checkFace if true (default false), only the facet "facing" to (x,y,z) or only the ones "turning their backs", according to the parameter "facing" are returned
1322
+ * @param facing if facing and checkFace are true, only the facet "facing" to (x, y, z) are returned : positive dot (x, y, z) * facet position. If facing si false and checkFace is true, only the facet "turning their backs" to (x, y, z) are returned : negative dot (x, y, z) * facet position
1323
+ * @returns the face index if found (or null instead)
1324
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1325
+ */
1326
+ getClosestFacetAtCoordinates(t, e, i, n, r = !1, a = !0) {
1327
+ const s = this.getWorldMatrix(), o = p.Matrix[5];
1328
+ s.invertToRef(o);
1329
+ const f = p.Vector3[8];
1330
+ h.TransformCoordinatesFromFloatsToRef(t, e, i, o, f);
1331
+ const d = this.getClosestFacetAtLocalCoordinates(f.x, f.y, f.z, n, r, a);
1332
+ return n && h.TransformCoordinatesFromFloatsToRef(n.x, n.y, n.z, s, n), d;
1333
+ }
1334
+ /**
1335
+ * Returns the closest mesh facet index at (x,y,z) local coordinates, null if not found
1336
+ * @param x defines x coordinate
1337
+ * @param y defines y coordinate
1338
+ * @param z defines z coordinate
1339
+ * @param projected sets as the (x,y,z) local projection on the facet
1340
+ * @param checkFace if true (default false), only the facet "facing" to (x,y,z) or only the ones "turning their backs", according to the parameter "facing" are returned
1341
+ * @param facing if facing and checkFace are true, only the facet "facing" to (x, y, z) are returned : positive dot (x, y, z) * facet position. If facing si false and checkFace is true, only the facet "turning their backs" to (x, y, z) are returned : negative dot (x, y, z) * facet position
1342
+ * @returns the face index if found (or null instead)
1343
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1344
+ */
1345
+ getClosestFacetAtLocalCoordinates(t, e, i, n, r = !1, a = !0) {
1346
+ let s = null, o = 0, f = 0, d = 0, l = 0, _ = 0, M = 0, D = 0, c = 0;
1347
+ const g = this.getFacetLocalPositions(), u = this.getFacetLocalNormals(), P = this.getFacetsAtLocalCoordinates(t, e, i);
1348
+ if (!P)
1349
+ return null;
1350
+ let C = Number.MAX_VALUE, v = C, B, b, S;
1351
+ for (let F = 0; F < P.length; F++)
1352
+ B = P[F], b = u[B], S = g[B], l = (t - S.x) * b.x + (e - S.y) * b.y + (i - S.z) * b.z, (!r || r && a && l >= 0 || r && !a && l <= 0) && (l = b.x * S.x + b.y * S.y + b.z * S.z, _ = -(b.x * t + b.y * e + b.z * i - l) / (b.x * b.x + b.y * b.y + b.z * b.z), M = t + b.x * _, D = e + b.y * _, c = i + b.z * _, o = M - t, f = D - e, d = c - i, v = o * o + f * f + d * d, v < C && (C = v, s = B, n && (n.x = M, n.y = D, n.z = c)));
1353
+ return s;
1354
+ }
1355
+ /**
1356
+ * Returns the object "parameter" set with all the expected parameters for facetData computation by ComputeNormals()
1357
+ * @returns the parameters
1358
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1359
+ */
1360
+ getFacetDataParameters() {
1361
+ return this._internalAbstractMeshDataInfo._facetData.facetParameters;
1362
+ }
1363
+ /**
1364
+ * Disables the feature FacetData and frees the related memory
1365
+ * @returns the current mesh
1366
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/facetData
1367
+ */
1368
+ disableFacetData() {
1369
+ const t = this._internalAbstractMeshDataInfo._facetData;
1370
+ return t.facetDataEnabled && (t.facetDataEnabled = !1, t.facetPositions = new Array(), t.facetNormals = new Array(), t.facetPartitioning = new Array(), t.facetParameters = null, t.depthSortedIndices = new Uint32Array(0)), this;
1371
+ }
1372
+ /**
1373
+ * Updates the AbstractMesh indices array
1374
+ * @param indices defines the data source
1375
+ * @param offset defines the offset in the index buffer where to store the new data (can be null)
1376
+ * @param gpuMemoryOnly defines a boolean indicating that only the GPU memory must be updated leaving the CPU version of the indices unchanged (false by default)
1377
+ * @returns the current mesh
1378
+ */
1379
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1380
+ updateIndices(t, e, i = !1) {
1381
+ return this;
1382
+ }
1383
+ /**
1384
+ * Creates new normals data for the mesh
1385
+ * @param updatable defines if the normal vertex buffer must be flagged as updatable
1386
+ * @returns the current mesh
1387
+ */
1388
+ createNormals(t) {
1389
+ const e = this.getVerticesData(m.PositionKind), i = this.getIndices();
1390
+ let n;
1391
+ return this.isVerticesDataPresent(m.NormalKind) ? n = this.getVerticesData(m.NormalKind) : n = [], L.ComputeNormals(e, i, n, { useRightHandedSystem: this.getScene().useRightHandedSystem }), this.setVerticesData(m.NormalKind, n, t), this;
1392
+ }
1393
+ /**
1394
+ * Align the mesh with a normal
1395
+ * @param normal defines the normal to use
1396
+ * @param upDirection can be used to redefined the up vector to use (will use the (0, 1, 0) by default)
1397
+ * @returns the current mesh
1398
+ */
1399
+ alignWithNormal(t, e) {
1400
+ e || (e = Z.Y);
1401
+ const i = p.Vector3[0], n = p.Vector3[1];
1402
+ return h.CrossToRef(e, t, n), h.CrossToRef(t, n, i), this.rotationQuaternion ? N.RotationQuaternionFromAxisToRef(i, t, n, this.rotationQuaternion) : h.RotationFromAxisToRef(i, t, n, this.rotation), this;
1403
+ }
1404
+ /** @internal */
1405
+ _checkOcclusionQuery() {
1406
+ return !1;
1407
+ }
1408
+ /**
1409
+ * Disables the mesh edge rendering mode
1410
+ * @returns the currentAbstractMesh
1411
+ */
1412
+ disableEdgesRendering() {
1413
+ throw k("EdgesRenderer");
1414
+ }
1415
+ /**
1416
+ * Enables the edge rendering mode on the mesh.
1417
+ * This mode makes the mesh edges visible
1418
+ * @param epsilon defines the maximal distance between two angles to detect a face
1419
+ * @param checkVerticesInsteadOfIndices indicates that we should check vertex list directly instead of faces
1420
+ * @param options options to the edge renderer
1421
+ * @returns the currentAbstractMesh
1422
+ * @see https://www.babylonjs-playground.com/#19O9TU#0
1423
+ */
1424
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1425
+ enableEdgesRendering(t, e, i) {
1426
+ throw k("EdgesRenderer");
1427
+ }
1428
+ /**
1429
+ * This function returns all of the particle systems in the scene that use the mesh as an emitter.
1430
+ * @returns an array of particle systems in the scene that use the mesh as an emitter
1431
+ */
1432
+ getConnectedParticleSystems() {
1433
+ return this._scene.particleSystems.filter((t) => t.emitter === this);
1434
+ }
1435
+ }
1436
+ I.OCCLUSION_TYPE_NONE = 0;
1437
+ I.OCCLUSION_TYPE_OPTIMISTIC = 1;
1438
+ I.OCCLUSION_TYPE_STRICT = 2;
1439
+ I.OCCLUSION_ALGORITHM_TYPE_ACCURATE = 0;
1440
+ I.OCCLUSION_ALGORITHM_TYPE_CONSERVATIVE = 1;
1441
+ I.CULLINGSTRATEGY_STANDARD = 0;
1442
+ I.CULLINGSTRATEGY_BOUNDINGSPHERE_ONLY = 1;
1443
+ I.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION = 2;
1444
+ I.CULLINGSTRATEGY_OPTIMISTIC_INCLUSION_THEN_BSPHERE_ONLY = 3;
1445
+ K("BABYLON.AbstractMesh", I);
1446
+ export {
1447
+ I as AbstractMesh
1448
+ };