@babylonjs/core 5.0.0-alpha.48 → 5.0.0-alpha.51

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 (1305) hide show
  1. package/Actions/action.js +5 -5
  2. package/Actions/action.js.map +1 -1
  3. package/Actions/actionManager.js +11 -11
  4. package/Actions/actionManager.js.map +1 -1
  5. package/Actions/condition.js +5 -5
  6. package/Actions/condition.js.map +1 -1
  7. package/Actions/directActions.js +13 -13
  8. package/Actions/directActions.js.map +1 -1
  9. package/Actions/directAudioActions.js +4 -4
  10. package/Actions/directAudioActions.js.map +1 -1
  11. package/Actions/index.js +8 -8
  12. package/Actions/interpolateValueAction.js +8 -8
  13. package/Actions/interpolateValueAction.js.map +1 -1
  14. package/Animations/animatable.js +12 -7
  15. package/Animations/animatable.js.map +1 -1
  16. package/Animations/animation.js +11 -11
  17. package/Animations/animation.js.map +1 -1
  18. package/Animations/animationGroup.js +4 -14
  19. package/Animations/animationGroup.js.map +1 -1
  20. package/Animations/animationPropertiesOverride.js +1 -1
  21. package/Animations/easing.js +1 -1
  22. package/Animations/index.js +12 -12
  23. package/Animations/pathCursor.js +1 -1
  24. package/Animations/runtimeAnimation.js +12 -7
  25. package/Animations/runtimeAnimation.js.map +1 -1
  26. package/Audio/analyser.js +2 -2
  27. package/Audio/audioEngine.js +5 -5
  28. package/Audio/audioEngine.js.map +1 -1
  29. package/Audio/audioSceneComponent.js +9 -9
  30. package/Audio/index.js +8 -8
  31. package/Audio/sound.js +7 -7
  32. package/Audio/sound.js.map +1 -1
  33. package/Audio/soundTrack.js +1 -1
  34. package/Audio/weightedsound.js +1 -1
  35. package/Behaviors/Cameras/autoRotationBehavior.js +2 -2
  36. package/Behaviors/Cameras/bouncingBehavior.js +2 -2
  37. package/Behaviors/Cameras/framingBehavior.js +5 -5
  38. package/Behaviors/Cameras/index.js +3 -3
  39. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  40. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +9 -1
  41. package/Behaviors/Meshes/baseSixDofDragBehavior.js +119 -62
  42. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  43. package/Behaviors/Meshes/followBehavior.js +3 -3
  44. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  45. package/Behaviors/Meshes/index.js +9 -9
  46. package/Behaviors/Meshes/multiPointerScaleBehavior.js +2 -2
  47. package/Behaviors/Meshes/pointerDragBehavior.js +10 -9
  48. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  49. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +4 -0
  50. package/Behaviors/Meshes/sixDofDragBehavior.js +24 -13
  51. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  52. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +2 -2
  53. package/Behaviors/index.js +3 -3
  54. package/Bones/bone.js +4 -4
  55. package/Bones/boneIKController.js +2 -2
  56. package/Bones/boneLookController.js +3 -3
  57. package/Bones/index.js +4 -4
  58. package/Bones/skeleton.js +9 -9
  59. package/Buffers/buffer.js +2 -5
  60. package/Buffers/buffer.js.map +1 -1
  61. package/Buffers/index.js +3 -3
  62. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +5 -5
  63. package/Cameras/Inputs/BaseCameraPointersInput.js +3 -3
  64. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +3 -3
  65. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +4 -4
  66. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +9 -9
  67. package/Cameras/Inputs/arcRotateCameraPointersInput.js +3 -3
  68. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +3 -3
  69. package/Cameras/Inputs/flyCameraKeyboardInput.js +5 -5
  70. package/Cameras/Inputs/flyCameraMouseInput.js +6 -6
  71. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +4 -4
  72. package/Cameras/Inputs/followCameraMouseWheelInput.js +4 -4
  73. package/Cameras/Inputs/followCameraPointersInput.js +3 -3
  74. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +5 -5
  75. package/Cameras/Inputs/freeCameraGamepadInput.js +4 -4
  76. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +5 -5
  77. package/Cameras/Inputs/freeCameraMouseInput.js +5 -5
  78. package/Cameras/Inputs/freeCameraMouseWheelInput.js +5 -5
  79. package/Cameras/Inputs/freeCameraTouchInput.js +5 -5
  80. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +4 -4
  81. package/Cameras/Inputs/index.js +19 -19
  82. package/Cameras/RigModes/index.js +4 -4
  83. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  84. package/Cameras/RigModes/stereoscopicRigMode.js +4 -4
  85. package/Cameras/RigModes/vrRigMode.js +6 -6
  86. package/Cameras/RigModes/webVRRigMode.js +2 -2
  87. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js +5 -5
  88. package/Cameras/Stereoscopic/anaglyphFreeCamera.js +5 -5
  89. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js +5 -5
  90. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js +5 -5
  91. package/Cameras/Stereoscopic/index.js +9 -9
  92. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js +5 -5
  93. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js +5 -5
  94. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js +5 -5
  95. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  96. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +29 -16
  97. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  98. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js +5 -5
  99. package/Cameras/VR/index.js +6 -6
  100. package/Cameras/VR/vrCameraMetrics.js +1 -1
  101. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +7 -7
  102. package/Cameras/VR/vrDeviceOrientationFreeCamera.js +6 -6
  103. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js +6 -6
  104. package/Cameras/VR/vrExperienceHelper.d.ts +0 -3
  105. package/Cameras/VR/vrExperienceHelper.js +52 -39
  106. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  107. package/Cameras/VR/webVRCamera.js +13 -13
  108. package/Cameras/arcRotateCamera.d.ts +10 -0
  109. package/Cameras/arcRotateCamera.js +40 -13
  110. package/Cameras/arcRotateCamera.js.map +1 -1
  111. package/Cameras/arcRotateCameraInputsManager.js +4 -4
  112. package/Cameras/camera.js +15 -15
  113. package/Cameras/camera.js.map +1 -1
  114. package/Cameras/cameraInputsManager.js +3 -3
  115. package/Cameras/deviceOrientationCamera.js +5 -5
  116. package/Cameras/flyCamera.js +6 -6
  117. package/Cameras/flyCameraInputsManager.js +3 -3
  118. package/Cameras/followCamera.js +6 -6
  119. package/Cameras/followCameraInputsManager.js +4 -4
  120. package/Cameras/freeCamera.js +6 -6
  121. package/Cameras/freeCameraInputsManager.js +5 -5
  122. package/Cameras/gamepadCamera.js +3 -3
  123. package/Cameras/index.js +20 -20
  124. package/Cameras/targetCamera.js +5 -5
  125. package/Cameras/touchCamera.js +3 -3
  126. package/Cameras/universalCamera.js +5 -5
  127. package/Cameras/virtualJoysticksCamera.js +4 -4
  128. package/Collisions/collider.js +2 -2
  129. package/Collisions/collisionCoordinator.js +4 -4
  130. package/Collisions/index.js +5 -5
  131. package/Collisions/meshCollisionData.js +1 -1
  132. package/Collisions/pickingInfo.d.ts +12 -2
  133. package/Collisions/pickingInfo.js +13 -4
  134. package/Collisions/pickingInfo.js.map +1 -1
  135. package/Compute/computeEffect.js +8 -8
  136. package/Compute/computeEffect.js.map +1 -1
  137. package/Compute/computeShader.js +8 -8
  138. package/Compute/computeShader.js.map +1 -1
  139. package/Compute/index.js +2 -2
  140. package/Culling/Octrees/index.js +3 -3
  141. package/Culling/Octrees/octree.js +2 -2
  142. package/Culling/Octrees/octreeBlock.js +2 -2
  143. package/Culling/Octrees/octreeSceneComponent.js +6 -6
  144. package/Culling/boundingBox.js +3 -3
  145. package/Culling/boundingInfo.js +4 -4
  146. package/Culling/boundingSphere.js +2 -2
  147. package/Culling/index.js +5 -5
  148. package/Culling/ray.js +6 -6
  149. package/Debug/axesViewer.js +4 -4
  150. package/Debug/boneAxesViewer.js +3 -3
  151. package/Debug/debugLayer.js +4 -4
  152. package/Debug/directionalLightFrustumViewer.js +19 -19
  153. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  154. package/Debug/index.js +8 -8
  155. package/Debug/physicsViewer.js +15 -15
  156. package/Debug/physicsViewer.js.map +1 -1
  157. package/Debug/rayHelper.js +5 -5
  158. package/Debug/rayHelper.js.map +1 -1
  159. package/Debug/skeletonViewer.js +17 -17
  160. package/Debug/skeletonViewer.js.map +1 -1
  161. package/DeviceInput/Helpers/eventFactory.js +2 -2
  162. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +3 -3
  163. package/DeviceInput/Implementations/webDeviceInputSystem.js +5 -5
  164. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  165. package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
  166. package/DeviceInput/deviceInputSystem.js +2 -2
  167. package/DeviceInput/index.js +8 -8
  168. package/Engines/Extensions/engine.alpha.js +1 -1
  169. package/Engines/Extensions/engine.computeShader.js +1 -1
  170. package/Engines/Extensions/engine.cubeTexture.js +7 -7
  171. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  172. package/Engines/Extensions/engine.debugging.js +1 -1
  173. package/Engines/Extensions/engine.dynamicBuffer.js +1 -1
  174. package/Engines/Extensions/engine.dynamicTexture.js +2 -2
  175. package/Engines/Extensions/engine.externalTexture.js +1 -1
  176. package/Engines/Extensions/engine.multiRender.js +3 -3
  177. package/Engines/Extensions/engine.multiview.js +8 -8
  178. package/Engines/Extensions/engine.query.js +4 -4
  179. package/Engines/Extensions/engine.rawTexture.js +4 -4
  180. package/Engines/Extensions/engine.readTexture.js +1 -1
  181. package/Engines/Extensions/engine.renderTarget.js +5 -5
  182. package/Engines/Extensions/engine.renderTargetCube.js +3 -3
  183. package/Engines/Extensions/engine.storageBuffer.js +1 -1
  184. package/Engines/Extensions/engine.textureSampler.js +1 -1
  185. package/Engines/Extensions/engine.textureSelector.js +1 -1
  186. package/Engines/Extensions/engine.transformFeedback.js +1 -1
  187. package/Engines/Extensions/engine.uniformBuffer.js +2 -2
  188. package/Engines/Extensions/engine.videoTexture.js +1 -1
  189. package/Engines/Extensions/engine.views.js +1 -1
  190. package/Engines/Extensions/engine.webVR.js +7 -7
  191. package/Engines/Extensions/engine.webVR.js.map +1 -1
  192. package/Engines/Extensions/index.js +23 -23
  193. package/Engines/Processors/Expressions/Operators/index.js +4 -4
  194. package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
  195. package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
  196. package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
  197. package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
  198. package/Engines/Processors/Expressions/index.js +2 -2
  199. package/Engines/Processors/index.js +9 -9
  200. package/Engines/Processors/shaderCodeConditionNode.js +1 -1
  201. package/Engines/Processors/shaderCodeInliner.js +13 -13
  202. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  203. package/Engines/Processors/shaderCodeNode.js +4 -4
  204. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  205. package/Engines/Processors/shaderCodeTestNode.js +1 -1
  206. package/Engines/Processors/shaderProcessor.js +12 -12
  207. package/Engines/Processors/shaderProcessor.js.map +1 -1
  208. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
  209. package/Engines/WebGL/webGLRenderTargetWrapper.js +1 -1
  210. package/Engines/WebGL/webGLShaderProcessors.js +1 -1
  211. package/Engines/WebGPU/Extensions/engine.alpha.js +2 -2
  212. package/Engines/WebGPU/Extensions/engine.computeShader.js +4 -4
  213. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +2 -2
  214. package/Engines/WebGPU/Extensions/engine.debugging.js +1 -1
  215. package/Engines/WebGPU/Extensions/engine.dynamicBuffer.js +1 -1
  216. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +1 -1
  217. package/Engines/WebGPU/Extensions/engine.externalTexture.js +3 -3
  218. package/Engines/WebGPU/Extensions/engine.multiRender.js +3 -3
  219. package/Engines/WebGPU/Extensions/engine.query.js +1 -1
  220. package/Engines/WebGPU/Extensions/engine.rawTexture.js +3 -3
  221. package/Engines/WebGPU/Extensions/engine.readTexture.js +1 -1
  222. package/Engines/WebGPU/Extensions/engine.renderTarget.js +4 -4
  223. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -2
  224. package/Engines/WebGPU/Extensions/engine.storageBuffer.js +3 -3
  225. package/Engines/WebGPU/Extensions/engine.textureSampler.js +2 -2
  226. package/Engines/WebGPU/Extensions/engine.uniformBuffer.js +2 -2
  227. package/Engines/WebGPU/Extensions/engine.videoTexture.js +1 -1
  228. package/Engines/WebGPU/Extensions/index.js +17 -17
  229. package/Engines/WebGPU/webgpuBufferManager.js +5 -5
  230. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  231. package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
  232. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +3 -3
  233. package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
  234. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +1 -1
  235. package/Engines/WebGPU/webgpuCacheSampler.js +2 -2
  236. package/Engines/WebGPU/webgpuClearQuad.js +4 -4
  237. package/Engines/WebGPU/webgpuComputeContext.js +3 -3
  238. package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
  239. package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
  240. package/Engines/WebGPU/webgpuHardwareTexture.js +3 -3
  241. package/Engines/WebGPU/webgpuMaterialContext.js +2 -2
  242. package/Engines/WebGPU/webgpuOcclusionQuery.js +2 -2
  243. package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
  244. package/Engines/WebGPU/webgpuQuerySet.js +1 -1
  245. package/Engines/WebGPU/webgpuShaderProcessor.js +2 -2
  246. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +5 -5
  247. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +17 -17
  248. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  249. package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
  250. package/Engines/WebGPU/webgpuTextureHelper.js +5 -5
  251. package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
  252. package/Engines/WebGPU/webgpuTintWASM.js +3 -3
  253. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  254. package/Engines/engine.js +21 -20
  255. package/Engines/engine.js.map +1 -1
  256. package/Engines/engineFactory.js +3 -3
  257. package/Engines/index.js +30 -30
  258. package/Engines/nativeEngine.d.ts +4 -12
  259. package/Engines/nativeEngine.js +32 -42
  260. package/Engines/nativeEngine.js.map +1 -1
  261. package/Engines/nullEngine.d.ts +25 -0
  262. package/Engines/nullEngine.js +62 -8
  263. package/Engines/nullEngine.js.map +1 -1
  264. package/Engines/renderTargetWrapper.js +2 -2
  265. package/Engines/shaderStore.js +1 -1
  266. package/Engines/thinEngine.js +40 -37
  267. package/Engines/thinEngine.js.map +1 -1
  268. package/Engines/webgpuEngine.js +37 -37
  269. package/Engines/webgpuEngine.js.map +1 -1
  270. package/Events/index.js +4 -4
  271. package/Events/pointerEvents.js +1 -1
  272. package/Gamepads/Controllers/daydreamController.js +4 -4
  273. package/Gamepads/Controllers/gearVRController.js +5 -5
  274. package/Gamepads/Controllers/genericController.js +3 -3
  275. package/Gamepads/Controllers/index.js +8 -8
  276. package/Gamepads/Controllers/oculusTouchController.js +5 -5
  277. package/Gamepads/Controllers/poseEnabledController.js +5 -5
  278. package/Gamepads/Controllers/viveController.js +3 -3
  279. package/Gamepads/Controllers/webVRController.js +2 -2
  280. package/Gamepads/Controllers/windowsMotionController.js +9 -9
  281. package/Gamepads/dualShockGamepad.js +2 -2
  282. package/Gamepads/gamepad.js +1 -1
  283. package/Gamepads/gamepadManager.js +9 -9
  284. package/Gamepads/gamepadManager.js.map +1 -1
  285. package/Gamepads/gamepadSceneComponent.js +7 -7
  286. package/Gamepads/index.js +6 -6
  287. package/Gamepads/xboxGamepad.js +2 -2
  288. package/Gizmos/axisDragGizmo.js +36 -22
  289. package/Gizmos/axisDragGizmo.js.map +1 -1
  290. package/Gizmos/axisScaleGizmo.js +12 -12
  291. package/Gizmos/axisScaleGizmo.js.map +1 -1
  292. package/Gizmos/boundingBoxGizmo.js +31 -32
  293. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  294. package/Gizmos/cameraGizmo.js +19 -19
  295. package/Gizmos/cameraGizmo.js.map +1 -1
  296. package/Gizmos/gizmo.js +5 -5
  297. package/Gizmos/gizmoManager.js +11 -11
  298. package/Gizmos/index.js +12 -12
  299. package/Gizmos/lightGizmo.js +45 -23
  300. package/Gizmos/lightGizmo.js.map +1 -1
  301. package/Gizmos/planeDragGizmo.js +10 -10
  302. package/Gizmos/planeDragGizmo.js.map +1 -1
  303. package/Gizmos/planeRotationGizmo.js +24 -14
  304. package/Gizmos/planeRotationGizmo.js.map +1 -1
  305. package/Gizmos/positionGizmo.js +8 -8
  306. package/Gizmos/rotationGizmo.js +7 -7
  307. package/Gizmos/scaleGizmo.js +11 -11
  308. package/Gizmos/scaleGizmo.js.map +1 -1
  309. package/Helpers/environmentHelper.js +17 -15
  310. package/Helpers/environmentHelper.js.map +1 -1
  311. package/Helpers/index.js +4 -4
  312. package/Helpers/photoDome.js +2 -2
  313. package/Helpers/sceneHelpers.js +18 -18
  314. package/Helpers/sceneHelpers.js.map +1 -1
  315. package/Helpers/textureDome.js +11 -11
  316. package/Helpers/textureDome.js.map +1 -1
  317. package/Helpers/videoDome.js +3 -3
  318. package/Inputs/scene.inputManager.js +8 -8
  319. package/Inputs/scene.inputManager.js.map +1 -1
  320. package/Instrumentation/engineInstrumentation.js +1 -1
  321. package/Instrumentation/index.js +3 -3
  322. package/Instrumentation/sceneInstrumentation.js +2 -2
  323. package/Layers/effectLayer.js +17 -17
  324. package/Layers/effectLayer.js.map +1 -1
  325. package/Layers/effectLayerSceneComponent.js +4 -4
  326. package/Layers/glowLayer.js +19 -16
  327. package/Layers/glowLayer.js.map +1 -1
  328. package/Layers/highlightLayer.js +20 -20
  329. package/Layers/highlightLayer.js.map +1 -1
  330. package/Layers/index.js +6 -6
  331. package/Layers/layer.js +12 -12
  332. package/Layers/layerSceneComponent.js +1 -1
  333. package/Legacy/legacy.js +3 -3
  334. package/LensFlares/index.js +3 -3
  335. package/LensFlares/lensFlare.js +2 -2
  336. package/LensFlares/lensFlareSystem.js +14 -14
  337. package/LensFlares/lensFlareSystem.js.map +1 -1
  338. package/LensFlares/lensFlareSystemSceneComponent.js +4 -4
  339. package/Lights/Shadows/cascadedShadowGenerator.js +12 -12
  340. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  341. package/Lights/Shadows/index.js +3 -3
  342. package/Lights/Shadows/shadowGenerator.js +19 -19
  343. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  344. package/Lights/Shadows/shadowGeneratorSceneComponent.js +4 -4
  345. package/Lights/directionalLight.js +5 -5
  346. package/Lights/hemisphericLight.js +5 -5
  347. package/Lights/index.js +7 -7
  348. package/Lights/light.js +8 -8
  349. package/Lights/light.js.map +1 -1
  350. package/Lights/pointLight.js +5 -5
  351. package/Lights/shadowLight.js +4 -4
  352. package/Lights/spotLight.js +6 -6
  353. package/Loading/Plugins/babylonFileLoader.js +30 -30
  354. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  355. package/Loading/Plugins/index.js +1 -1
  356. package/Loading/index.js +4 -4
  357. package/Loading/loadingScreen.js +1 -1
  358. package/Loading/sceneLoader.js +11 -11
  359. package/Loading/sceneLoader.js.map +1 -1
  360. package/Materials/Background/backgroundMaterial.js +17 -17
  361. package/Materials/Background/backgroundMaterial.js.map +1 -1
  362. package/Materials/Background/index.js +1 -1
  363. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +6 -6
  364. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  365. package/Materials/Node/Blocks/Dual/fogBlock.js +9 -9
  366. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  367. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +10 -10
  368. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  369. package/Materials/Node/Blocks/Dual/index.js +7 -7
  370. package/Materials/Node/Blocks/Dual/lightBlock.js +17 -17
  371. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  372. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +10 -10
  373. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  374. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +7 -7
  375. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  376. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +6 -6
  377. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  378. package/Materials/Node/Blocks/Dual/textureBlock.js +14 -14
  379. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  380. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +5 -5
  381. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  382. package/Materials/Node/Blocks/Fragment/discardBlock.js +5 -5
  383. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  384. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +5 -5
  385. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  386. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +6 -6
  387. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  388. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +5 -5
  389. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  390. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +9 -9
  391. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  392. package/Materials/Node/Blocks/Fragment/index.js +8 -8
  393. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +10 -10
  394. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  395. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +5 -5
  396. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  397. package/Materials/Node/Blocks/Input/index.js +2 -2
  398. package/Materials/Node/Blocks/Input/inputBlock.js +12 -12
  399. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  400. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +7 -7
  401. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  402. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +10 -10
  403. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  404. package/Materials/Node/Blocks/PBR/index.js +7 -7
  405. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +21 -21
  406. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  407. package/Materials/Node/Blocks/PBR/reflectionBlock.js +10 -10
  408. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  409. package/Materials/Node/Blocks/PBR/refractionBlock.js +13 -13
  410. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  411. package/Materials/Node/Blocks/PBR/sheenBlock.js +8 -8
  412. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  413. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +9 -9
  414. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  415. package/Materials/Node/Blocks/Particle/index.js +3 -3
  416. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +5 -5
  417. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  418. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +5 -5
  419. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  420. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  421. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  422. package/Materials/Node/Blocks/Vertex/bonesBlock.js +10 -10
  423. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  424. package/Materials/Node/Blocks/Vertex/index.js +5 -5
  425. package/Materials/Node/Blocks/Vertex/instancesBlock.js +7 -7
  426. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  427. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +6 -6
  428. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  429. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +10 -10
  430. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  431. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +5 -5
  432. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  433. package/Materials/Node/Blocks/addBlock.js +5 -5
  434. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  435. package/Materials/Node/Blocks/arcTan2Block.js +5 -5
  436. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  437. package/Materials/Node/Blocks/clampBlock.js +6 -6
  438. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  439. package/Materials/Node/Blocks/colorMergerBlock.js +5 -5
  440. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  441. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  442. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  443. package/Materials/Node/Blocks/conditionalBlock.js +5 -5
  444. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  445. package/Materials/Node/Blocks/crossBlock.js +5 -5
  446. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  447. package/Materials/Node/Blocks/desaturateBlock.js +5 -5
  448. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  449. package/Materials/Node/Blocks/distanceBlock.js +5 -5
  450. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  451. package/Materials/Node/Blocks/divideBlock.js +5 -5
  452. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  453. package/Materials/Node/Blocks/dotBlock.js +5 -5
  454. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  455. package/Materials/Node/Blocks/fresnelBlock.js +8 -8
  456. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  457. package/Materials/Node/Blocks/gradientBlock.js +7 -7
  458. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  459. package/Materials/Node/Blocks/index.js +52 -52
  460. package/Materials/Node/Blocks/lengthBlock.js +5 -5
  461. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  462. package/Materials/Node/Blocks/lerpBlock.js +5 -5
  463. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  464. package/Materials/Node/Blocks/matrixBuilderBlock.js +7 -7
  465. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  466. package/Materials/Node/Blocks/maxBlock.js +5 -5
  467. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  468. package/Materials/Node/Blocks/minBlock.js +5 -5
  469. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  470. package/Materials/Node/Blocks/modBlock.js +5 -5
  471. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  472. package/Materials/Node/Blocks/multiplyBlock.js +5 -5
  473. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  474. package/Materials/Node/Blocks/nLerpBlock.js +5 -5
  475. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  476. package/Materials/Node/Blocks/negateBlock.js +5 -5
  477. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  478. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  479. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  480. package/Materials/Node/Blocks/normalizeBlock.js +5 -5
  481. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  482. package/Materials/Node/Blocks/oneMinusBlock.js +6 -6
  483. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  484. package/Materials/Node/Blocks/posterizeBlock.js +5 -5
  485. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  486. package/Materials/Node/Blocks/powBlock.js +5 -5
  487. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  488. package/Materials/Node/Blocks/randomNumberBlock.js +6 -6
  489. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  490. package/Materials/Node/Blocks/reciprocalBlock.js +5 -5
  491. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  492. package/Materials/Node/Blocks/reflectBlock.js +5 -5
  493. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  494. package/Materials/Node/Blocks/refractBlock.js +5 -5
  495. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  496. package/Materials/Node/Blocks/remapBlock.js +7 -7
  497. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  498. package/Materials/Node/Blocks/replaceColorBlock.js +5 -5
  499. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  500. package/Materials/Node/Blocks/rotate2dBlock.js +6 -6
  501. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  502. package/Materials/Node/Blocks/scaleBlock.js +5 -5
  503. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  504. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +5 -5
  505. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  506. package/Materials/Node/Blocks/smoothStepBlock.js +5 -5
  507. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  508. package/Materials/Node/Blocks/stepBlock.js +5 -5
  509. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  510. package/Materials/Node/Blocks/subtractBlock.js +5 -5
  511. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  512. package/Materials/Node/Blocks/transformBlock.js +5 -5
  513. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  514. package/Materials/Node/Blocks/trigonometryBlock.js +5 -5
  515. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  516. package/Materials/Node/Blocks/vectorMergerBlock.js +5 -5
  517. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  518. package/Materials/Node/Blocks/vectorSplitterBlock.js +5 -5
  519. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  520. package/Materials/Node/Blocks/viewDirectionBlock.js +7 -7
  521. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  522. package/Materials/Node/Blocks/waveBlock.js +5 -5
  523. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  524. package/Materials/Node/Blocks/worleyNoise3DBlock.js +6 -6
  525. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  526. package/Materials/Node/Enums/index.js +5 -5
  527. package/Materials/Node/Optimizers/index.js +1 -1
  528. package/Materials/Node/index.js +7 -7
  529. package/Materials/Node/nodeMaterial.js +40 -40
  530. package/Materials/Node/nodeMaterial.js.map +1 -1
  531. package/Materials/Node/nodeMaterialBlock.js +6 -6
  532. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  533. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +3 -3
  534. package/Materials/Node/nodeMaterialBuildState.js +6 -6
  535. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  536. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js +1 -1
  537. package/Materials/Occlusion/index.js +1 -1
  538. package/Materials/Occlusion/occlusionMaterial.js +4 -4
  539. package/Materials/PBR/index.js +5 -5
  540. package/Materials/PBR/pbrAnisotropicConfiguration.js +11 -5
  541. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  542. package/Materials/PBR/pbrBRDFConfiguration.js +1 -1
  543. package/Materials/PBR/pbrBaseMaterial.js +28 -28
  544. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  545. package/Materials/PBR/pbrBaseSimpleMaterial.js +3 -3
  546. package/Materials/PBR/pbrClearCoatConfiguration.js +10 -4
  547. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  548. package/Materials/PBR/pbrMaterial.js +7 -7
  549. package/Materials/PBR/pbrMaterial.js.map +1 -1
  550. package/Materials/PBR/pbrMetallicRoughnessMaterial.js +4 -4
  551. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  552. package/Materials/PBR/pbrSheenConfiguration.js +10 -4
  553. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  554. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +4 -4
  555. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  556. package/Materials/PBR/pbrSubSurfaceConfiguration.js +19 -6
  557. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  558. package/Materials/Textures/Filtering/hdrFiltering.js +6 -6
  559. package/Materials/Textures/Loaders/basisTextureLoader.js +9 -9
  560. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  561. package/Materials/Textures/Loaders/ddsTextureLoader.js +5 -5
  562. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  563. package/Materials/Textures/Loaders/envTextureLoader.js +7 -7
  564. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  565. package/Materials/Textures/Loaders/hdrTextureLoader.js +4 -4
  566. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  567. package/Materials/Textures/Loaders/index.js +6 -6
  568. package/Materials/Textures/Loaders/ktxTextureLoader.js +6 -6
  569. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  570. package/Materials/Textures/Loaders/tgaTextureLoader.js +6 -6
  571. package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
  572. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  573. package/Materials/Textures/Packer/index.js +2 -2
  574. package/Materials/Textures/Packer/packer.js +9 -9
  575. package/Materials/Textures/Procedurals/customProceduralTexture.js +6 -6
  576. package/Materials/Textures/Procedurals/index.js +4 -4
  577. package/Materials/Textures/Procedurals/noiseProceduralTexture.js +5 -5
  578. package/Materials/Textures/Procedurals/noiseProceduralTexture.js.map +1 -1
  579. package/Materials/Textures/Procedurals/proceduralTexture.js +15 -15
  580. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  581. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +2 -2
  582. package/Materials/Textures/baseTexture.js +8 -8
  583. package/Materials/Textures/baseTexture.js.map +1 -1
  584. package/Materials/Textures/baseTexture.polynomial.js +2 -2
  585. package/Materials/Textures/colorGradingTexture.js +5 -5
  586. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  587. package/Materials/Textures/cubeTexture.js +12 -12
  588. package/Materials/Textures/cubeTexture.js.map +1 -1
  589. package/Materials/Textures/dynamicTexture.js +3 -3
  590. package/Materials/Textures/equiRectangularCubeTexture.js +10 -12
  591. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  592. package/Materials/Textures/externalTexture.js +1 -1
  593. package/Materials/Textures/hdrCubeTexture.js +16 -16
  594. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  595. package/Materials/Textures/htmlElementTexture.js +4 -4
  596. package/Materials/Textures/index.js +27 -27
  597. package/Materials/Textures/internalTexture.d.ts +15 -2
  598. package/Materials/Textures/internalTexture.js +29 -13
  599. package/Materials/Textures/internalTexture.js.map +1 -1
  600. package/Materials/Textures/mirrorTexture.js +5 -5
  601. package/Materials/Textures/multiRenderTarget.js +3 -3
  602. package/Materials/Textures/prePassRenderTarget.js +2 -2
  603. package/Materials/Textures/rawCubeTexture.d.ts +0 -3
  604. package/Materials/Textures/rawCubeTexture.js +6 -17
  605. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  606. package/Materials/Textures/rawTexture.js +2 -2
  607. package/Materials/Textures/rawTexture2DArray.js +2 -2
  608. package/Materials/Textures/rawTexture3D.js +2 -2
  609. package/Materials/Textures/refractionTexture.js +2 -2
  610. package/Materials/Textures/renderTargetTexture.js +9 -9
  611. package/Materials/Textures/texture.js +30 -25
  612. package/Materials/Textures/texture.js.map +1 -1
  613. package/Materials/Textures/thinTexture.js +1 -1
  614. package/Materials/Textures/videoTexture.js +6 -6
  615. package/Materials/colorCurves.js +2 -2
  616. package/Materials/effect.js +8 -8
  617. package/Materials/effect.js.map +1 -1
  618. package/Materials/effectRenderer.js +6 -6
  619. package/Materials/fresnelParameters.js +4 -4
  620. package/Materials/imageProcessingConfiguration.js +6 -6
  621. package/Materials/index.js +25 -25
  622. package/Materials/material.detailMapConfiguration.js +7 -4
  623. package/Materials/material.detailMapConfiguration.js.map +1 -1
  624. package/Materials/material.js +11 -11
  625. package/Materials/materialFlags.js +1 -1
  626. package/Materials/materialHelper.js +7 -7
  627. package/Materials/materialStencilState.js +1 -1
  628. package/Materials/multiMaterial.js +4 -4
  629. package/Materials/multiMaterial.js.map +1 -1
  630. package/Materials/prePassConfiguration.d.ts +1 -0
  631. package/Materials/prePassConfiguration.js +8 -2
  632. package/Materials/prePassConfiguration.js.map +1 -1
  633. package/Materials/pushMaterial.js +2 -2
  634. package/Materials/shaderMaterial.d.ts +0 -2
  635. package/Materials/shaderMaterial.js +12 -30
  636. package/Materials/shaderMaterial.js.map +1 -1
  637. package/Materials/shadowDepthWrapper.js +6 -5
  638. package/Materials/shadowDepthWrapper.js.map +1 -1
  639. package/Materials/standardMaterial.js +20 -20
  640. package/Materials/standardMaterial.js.map +1 -1
  641. package/Materials/uniformBuffer.js +3 -3
  642. package/Maths/index.js +4 -4
  643. package/Maths/math.axis.js +1 -1
  644. package/Maths/math.color.js +6 -6
  645. package/Maths/math.color.js.map +1 -1
  646. package/Maths/math.frustum.js +1 -1
  647. package/Maths/math.functions.js +2 -2
  648. package/Maths/math.isovector.js +2 -2
  649. package/Maths/math.js +10 -10
  650. package/Maths/math.path.js +3 -3
  651. package/Maths/math.plane.js +1 -1
  652. package/Maths/math.vector.js +9 -9
  653. package/Maths/math.vector.js.map +1 -1
  654. package/Maths/math.vertexFormat.js +1 -1
  655. package/Maths/sphericalPolynomial.js +2 -2
  656. package/Meshes/Builders/boxBuilder.d.ts +63 -32
  657. package/Meshes/Builders/boxBuilder.js +53 -39
  658. package/Meshes/Builders/boxBuilder.js.map +1 -1
  659. package/Meshes/Builders/capsuleBuilder.d.ts +20 -10
  660. package/Meshes/Builders/capsuleBuilder.js +36 -37
  661. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  662. package/Meshes/Builders/cylinderBuilder.d.ts +87 -48
  663. package/Meshes/Builders/cylinderBuilder.js +71 -53
  664. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  665. package/Meshes/Builders/decalBuilder.d.ts +26 -24
  666. package/Meshes/Builders/decalBuilder.js +211 -213
  667. package/Meshes/Builders/decalBuilder.js.map +1 -1
  668. package/Meshes/Builders/discBuilder.d.ts +27 -25
  669. package/Meshes/Builders/discBuilder.js +46 -36
  670. package/Meshes/Builders/discBuilder.js.map +1 -1
  671. package/Meshes/Builders/geodesicBuilder.d.ts +34 -39
  672. package/Meshes/Builders/geodesicBuilder.js +58 -67
  673. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  674. package/Meshes/Builders/goldbergBuilder.d.ts +56 -29
  675. package/Meshes/Builders/goldbergBuilder.js +97 -84
  676. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  677. package/Meshes/Builders/groundBuilder.d.ts +151 -79
  678. package/Meshes/Builders/groundBuilder.js +174 -137
  679. package/Meshes/Builders/groundBuilder.js.map +1 -1
  680. package/Meshes/Builders/hemisphereBuilder.d.ts +16 -14
  681. package/Meshes/Builders/hemisphereBuilder.js +33 -34
  682. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  683. package/Meshes/Builders/icoSphereBuilder.d.ts +57 -29
  684. package/Meshes/Builders/icoSphereBuilder.js +51 -38
  685. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  686. package/Meshes/Builders/index.js +23 -23
  687. package/Meshes/Builders/latheBuilder.d.ts +38 -36
  688. package/Meshes/Builders/latheBuilder.js +70 -72
  689. package/Meshes/Builders/latheBuilder.js.map +1 -1
  690. package/Meshes/Builders/linesBuilder.d.ts +113 -82
  691. package/Meshes/Builders/linesBuilder.js +202 -184
  692. package/Meshes/Builders/linesBuilder.js.map +1 -1
  693. package/Meshes/Builders/planeBuilder.d.ts +48 -26
  694. package/Meshes/Builders/planeBuilder.js +50 -40
  695. package/Meshes/Builders/planeBuilder.js.map +1 -1
  696. package/Meshes/Builders/polygonBuilder.d.ts +68 -51
  697. package/Meshes/Builders/polygonBuilder.js +91 -79
  698. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  699. package/Meshes/Builders/polyhedronBuilder.d.ts +73 -36
  700. package/Meshes/Builders/polyhedronBuilder.js +63 -43
  701. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  702. package/Meshes/Builders/ribbonBuilder.d.ts +69 -39
  703. package/Meshes/Builders/ribbonBuilder.js +166 -152
  704. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  705. package/Meshes/Builders/shapeBuilder.d.ts +83 -81
  706. package/Meshes/Builders/shapeBuilder.js +185 -186
  707. package/Meshes/Builders/shapeBuilder.js.map +1 -1
  708. package/Meshes/Builders/sphereBuilder.d.ts +62 -31
  709. package/Meshes/Builders/sphereBuilder.js +53 -39
  710. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  711. package/Meshes/Builders/tiledBoxBuilder.d.ts +56 -29
  712. package/Meshes/Builders/tiledBoxBuilder.js +45 -36
  713. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  714. package/Meshes/Builders/tiledPlaneBuilder.d.ts +67 -38
  715. package/Meshes/Builders/tiledPlaneBuilder.js +51 -40
  716. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  717. package/Meshes/Builders/torusBuilder.d.ts +47 -25
  718. package/Meshes/Builders/torusBuilder.js +46 -36
  719. package/Meshes/Builders/torusBuilder.js.map +1 -1
  720. package/Meshes/Builders/torusKnotBuilder.d.ts +57 -29
  721. package/Meshes/Builders/torusKnotBuilder.js +51 -37
  722. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  723. package/Meshes/Builders/tubeBuilder.d.ts +42 -40
  724. package/Meshes/Builders/tubeBuilder.js +140 -142
  725. package/Meshes/Builders/tubeBuilder.js.map +1 -1
  726. package/Meshes/Compression/dracoCompression.js +3 -3
  727. package/Meshes/Compression/index.js +2 -2
  728. package/Meshes/Compression/meshoptCompression.js +1 -1
  729. package/Meshes/WebGL/webGLDataBuffer.js +1 -1
  730. package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
  731. package/Meshes/abstractMesh.js +20 -20
  732. package/Meshes/abstractMesh.js.map +1 -1
  733. package/Meshes/csg.js +5 -5
  734. package/Meshes/geodesicMesh.js +4 -4
  735. package/Meshes/geometry.js +13 -17
  736. package/Meshes/geometry.js.map +1 -1
  737. package/Meshes/groundMesh.js +3 -3
  738. package/Meshes/index.d.ts +1 -0
  739. package/Meshes/index.js +25 -24
  740. package/Meshes/index.js.map +1 -1
  741. package/Meshes/instancedMesh.js +8 -8
  742. package/Meshes/linesMesh.js +9 -9
  743. package/Meshes/mesh.d.ts +2 -383
  744. package/Meshes/mesh.js +32 -439
  745. package/Meshes/mesh.js.map +1 -1
  746. package/Meshes/mesh.lts.d.ts +417 -0
  747. package/Meshes/mesh.lts.js +25 -0
  748. package/Meshes/mesh.lts.js.map +1 -0
  749. package/Meshes/mesh.vertexData.d.ts +21 -64
  750. package/Meshes/mesh.vertexData.js +46 -71
  751. package/Meshes/mesh.vertexData.js.map +1 -1
  752. package/Meshes/meshBuilder.d.ts +52 -799
  753. package/Meshes/meshBuilder.js +52 -609
  754. package/Meshes/meshBuilder.js.map +1 -1
  755. package/Meshes/meshSimplification.js +6 -6
  756. package/Meshes/meshSimplificationSceneComponent.js +4 -4
  757. package/Meshes/polygonMesh.js +8 -8
  758. package/Meshes/subMesh.js +5 -5
  759. package/Meshes/subMesh.project.js +2 -2
  760. package/Meshes/thinInstanceMesh.js +3 -3
  761. package/Meshes/trailMesh.js +5 -5
  762. package/Meshes/transformNode.js +5 -5
  763. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +5 -5
  764. package/Misc/HighDynamicRange/hdr.js +1 -1
  765. package/Misc/HighDynamicRange/index.js +3 -3
  766. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  767. package/Misc/PerformanceViewer/index.js +4 -4
  768. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +2 -2
  769. package/Misc/PerformanceViewer/performanceViewerCollector.js +4 -4
  770. package/Misc/PerformanceViewer/performanceViewerSceneExtension.js +2 -2
  771. package/Misc/assetsManager.js +8 -8
  772. package/Misc/basis.d.ts +40 -12
  773. package/Misc/basis.js +172 -145
  774. package/Misc/basis.js.map +1 -1
  775. package/Misc/brdfTextureTools.d.ts +9 -8
  776. package/Misc/brdfTextureTools.js +49 -50
  777. package/Misc/brdfTextureTools.js.map +1 -1
  778. package/Misc/codeStringParsingTools.d.ts +40 -45
  779. package/Misc/codeStringParsingTools.js +154 -163
  780. package/Misc/codeStringParsingTools.js.map +1 -1
  781. package/Misc/computePressure.js +2 -2
  782. package/Misc/computePressure.js.map +1 -1
  783. package/Misc/copyTools.d.ts +30 -5
  784. package/Misc/copyTools.js +108 -87
  785. package/Misc/copyTools.js.map +1 -1
  786. package/Misc/dataReader.js +2 -2
  787. package/Misc/dataReader.js.map +1 -1
  788. package/Misc/dds.js +23 -23
  789. package/Misc/dds.js.map +1 -1
  790. package/Misc/decorators.js +8 -8
  791. package/Misc/decorators.js.map +1 -1
  792. package/Misc/deepCopier.js +3 -3
  793. package/Misc/deepCopier.js.map +1 -1
  794. package/Misc/depthReducer.js +2 -2
  795. package/Misc/devTools.d.ts +1 -3
  796. package/Misc/devTools.js +3 -9
  797. package/Misc/devTools.js.map +1 -1
  798. package/Misc/domManagement.d.ts +27 -6
  799. package/Misc/domManagement.js +43 -26
  800. package/Misc/domManagement.js.map +1 -1
  801. package/Misc/environmentTextureTools.d.ts +61 -28
  802. package/Misc/environmentTextureTools.js +550 -503
  803. package/Misc/environmentTextureTools.js.map +1 -1
  804. package/Misc/fileTools.d.ts +91 -101
  805. package/Misc/fileTools.js +414 -396
  806. package/Misc/fileTools.js.map +1 -1
  807. package/Misc/fileTools.lts.d.ts +9 -0
  808. package/Misc/fileTools.lts.js +64 -0
  809. package/Misc/fileTools.lts.js.map +1 -0
  810. package/Misc/filesInput.d.ts +1 -1
  811. package/Misc/filesInput.js +4 -4
  812. package/Misc/filesInput.js.map +1 -1
  813. package/Misc/gradients.js +1 -1
  814. package/Misc/guid.d.ts +10 -3
  815. package/Misc/guid.js +15 -12
  816. package/Misc/guid.js.map +1 -1
  817. package/Misc/index.d.ts +1 -0
  818. package/Misc/index.js +61 -60
  819. package/Misc/index.js.map +1 -1
  820. package/Misc/instantiationTools.js +3 -3
  821. package/Misc/instantiationTools.js.map +1 -1
  822. package/Misc/khronosTextureContainer.js +1 -1
  823. package/Misc/khronosTextureContainer2.js +2 -2
  824. package/Misc/meshExploder.js +1 -1
  825. package/Misc/minMaxReducer.js +4 -4
  826. package/Misc/observable.d.ts +7 -0
  827. package/Misc/observable.js +22 -0
  828. package/Misc/observable.js.map +1 -1
  829. package/Misc/observableCoroutine.js +1 -1
  830. package/Misc/perfCounter.js +1 -1
  831. package/Misc/performanceMonitor.js +1 -1
  832. package/Misc/pivotTools.js +1 -1
  833. package/Misc/precisionDate.js +1 -1
  834. package/Misc/reflector.js +4 -4
  835. package/Misc/reflector.js.map +1 -1
  836. package/Misc/rgbdTextureTools.js +5 -5
  837. package/Misc/rgbdTextureTools.js.map +1 -1
  838. package/Misc/sceneOptimizer.js +3 -3
  839. package/Misc/sceneRecorder.js +14 -14
  840. package/Misc/sceneSerializer.js +4 -4
  841. package/Misc/screenshotTools.d.ts +96 -12
  842. package/Misc/screenshotTools.js +302 -207
  843. package/Misc/screenshotTools.js.map +1 -1
  844. package/Misc/stringTools.d.ts +54 -47
  845. package/Misc/stringTools.js +108 -105
  846. package/Misc/stringTools.js.map +1 -1
  847. package/Misc/tags.js +1 -1
  848. package/Misc/textureTools.d.ts +38 -8
  849. package/Misc/textureTools.js +169 -138
  850. package/Misc/textureTools.js.map +1 -1
  851. package/Misc/tga.d.ts +34 -22
  852. package/Misc/tga.js +279 -260
  853. package/Misc/tga.js.map +1 -1
  854. package/Misc/timer.js +1 -1
  855. package/Misc/timingTools.js +2 -2
  856. package/Misc/timingTools.js.map +1 -1
  857. package/Misc/tools.d.ts +5 -5
  858. package/Misc/tools.js +42 -42
  859. package/Misc/tools.js.map +1 -1
  860. package/Misc/trajectoryClassifier.js +1 -1
  861. package/Misc/typeStore.d.ts +3 -8
  862. package/Misc/typeStore.js +9 -15
  863. package/Misc/typeStore.js.map +1 -1
  864. package/Misc/videoRecorder.js +1 -1
  865. package/Misc/virtualJoystick.js +2 -2
  866. package/Morph/index.js +2 -2
  867. package/Morph/morphTarget.js +6 -6
  868. package/Morph/morphTarget.js.map +1 -1
  869. package/Morph/morphTargetManager.d.ts +1 -1
  870. package/Morph/morphTargetManager.js +11 -10
  871. package/Morph/morphTargetManager.js.map +1 -1
  872. package/Navigation/Plugins/index.js +1 -1
  873. package/Navigation/Plugins/recastJSPlugin.js +6 -6
  874. package/Navigation/index.js +2 -2
  875. package/Offline/database.js +6 -6
  876. package/Offline/database.js.map +1 -1
  877. package/Offline/index.js +2 -2
  878. package/Particles/EmitterTypes/boxParticleEmitter.js +3 -3
  879. package/Particles/EmitterTypes/coneParticleEmitter.js +3 -3
  880. package/Particles/EmitterTypes/customParticleEmitter.js +2 -2
  881. package/Particles/EmitterTypes/cylinderParticleEmitter.js +3 -3
  882. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +3 -3
  883. package/Particles/EmitterTypes/index.js +9 -9
  884. package/Particles/EmitterTypes/meshParticleEmitter.js +4 -4
  885. package/Particles/EmitterTypes/pointParticleEmitter.js +3 -3
  886. package/Particles/EmitterTypes/sphereParticleEmitter.js +3 -3
  887. package/Particles/baseParticleSystem.js +5 -5
  888. package/Particles/cloudPoint.js +1 -1
  889. package/Particles/computeShaderParticleSystem.js +7 -7
  890. package/Particles/computeShaderParticleSystem.js.map +1 -1
  891. package/Particles/gpuParticleSystem.js +24 -24
  892. package/Particles/gpuParticleSystem.js.map +1 -1
  893. package/Particles/index.js +17 -17
  894. package/Particles/particle.js +3 -3
  895. package/Particles/particleHelper.js +8 -8
  896. package/Particles/particleSystem.js +26 -26
  897. package/Particles/particleSystem.js.map +1 -1
  898. package/Particles/particleSystemComponent.js +7 -7
  899. package/Particles/particleSystemSet.js +7 -7
  900. package/Particles/particleSystemSet.js.map +1 -1
  901. package/Particles/pointsCloudSystem.js +12 -12
  902. package/Particles/solidParticle.js +5 -5
  903. package/Particles/solidParticleSystem.js +15 -15
  904. package/Particles/solidParticleSystem.js.map +1 -1
  905. package/Particles/subEmitter.d.ts +2 -1
  906. package/Particles/subEmitter.js +10 -8
  907. package/Particles/subEmitter.js.map +1 -1
  908. package/Particles/webgl2ParticleSystem.js +7 -7
  909. package/Particles/webgl2ParticleSystem.js.map +1 -1
  910. package/Physics/Plugins/ammoJSPlugin.js +35 -27
  911. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  912. package/Physics/Plugins/cannonJSPlugin.js +7 -7
  913. package/Physics/Plugins/index.js +3 -3
  914. package/Physics/Plugins/oimoJSPlugin.js +6 -6
  915. package/Physics/index.js +7 -7
  916. package/Physics/physicsEngine.js +3 -3
  917. package/Physics/physicsEngine.js.map +1 -1
  918. package/Physics/physicsEngineComponent.js +7 -7
  919. package/Physics/physicsHelper.js +8 -8
  920. package/Physics/physicsHelper.js.map +1 -1
  921. package/Physics/physicsImpostor.js +7 -7
  922. package/Physics/physicsRaycastResult.js +1 -1
  923. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +18 -18
  924. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  925. package/PostProcesses/RenderPipeline/Pipelines/index.js +5 -5
  926. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +9 -9
  927. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +17 -17
  928. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  929. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +12 -12
  930. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +16 -16
  931. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  932. package/PostProcesses/RenderPipeline/index.js +5 -5
  933. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  934. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +2 -2
  935. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js +3 -3
  936. package/PostProcesses/anaglyphPostProcess.js +4 -4
  937. package/PostProcesses/anaglyphPostProcess.js.map +1 -1
  938. package/PostProcesses/blackAndWhitePostProcess.js +5 -5
  939. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  940. package/PostProcesses/bloomEffect.js +6 -6
  941. package/PostProcesses/bloomMergePostProcess.js +5 -5
  942. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  943. package/PostProcesses/blurPostProcess.js +7 -7
  944. package/PostProcesses/blurPostProcess.js.map +1 -1
  945. package/PostProcesses/chromaticAberrationPostProcess.js +6 -6
  946. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  947. package/PostProcesses/circleOfConfusionPostProcess.js +6 -6
  948. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  949. package/PostProcesses/colorCorrectionPostProcess.js +6 -6
  950. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  951. package/PostProcesses/convolutionPostProcess.js +5 -5
  952. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  953. package/PostProcesses/depthOfFieldBlurPostProcess.js +5 -5
  954. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  955. package/PostProcesses/depthOfFieldEffect.js +6 -6
  956. package/PostProcesses/depthOfFieldMergePostProcess.js +2 -2
  957. package/PostProcesses/displayPassPostProcess.js +5 -5
  958. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  959. package/PostProcesses/extractHighlightsPostProcess.js +6 -6
  960. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  961. package/PostProcesses/filterPostProcess.js +5 -5
  962. package/PostProcesses/filterPostProcess.js.map +1 -1
  963. package/PostProcesses/fxaaPostProcess.js +7 -7
  964. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  965. package/PostProcesses/grainPostProcess.js +5 -5
  966. package/PostProcesses/grainPostProcess.js.map +1 -1
  967. package/PostProcesses/highlightsPostProcess.js +2 -2
  968. package/PostProcesses/imageProcessingPostProcess.js +6 -6
  969. package/PostProcesses/index.js +33 -33
  970. package/PostProcesses/motionBlurPostProcess.js +11 -11
  971. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  972. package/PostProcesses/passPostProcess.js +7 -7
  973. package/PostProcesses/passPostProcess.js.map +1 -1
  974. package/PostProcesses/postProcess.js +11 -11
  975. package/PostProcesses/postProcess.js.map +1 -1
  976. package/PostProcesses/postProcessManager.js +1 -1
  977. package/PostProcesses/refractionPostProcess.js +6 -6
  978. package/PostProcesses/refractionPostProcess.js.map +1 -1
  979. package/PostProcesses/screenSpaceCurvaturePostProcess.js +8 -8
  980. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  981. package/PostProcesses/screenSpaceReflectionPostProcess.js +7 -7
  982. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  983. package/PostProcesses/sharpenPostProcess.js +5 -5
  984. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  985. package/PostProcesses/stereoscopicInterlacePostProcess.js +3 -3
  986. package/PostProcesses/subSurfaceScatteringPostProcess.js +6 -6
  987. package/PostProcesses/tonemapPostProcess.js +2 -2
  988. package/PostProcesses/volumetricLightScatteringPostProcess.js +23 -23
  989. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  990. package/PostProcesses/vrDistortionCorrectionPostProcess.js +4 -4
  991. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +4 -4
  992. package/Probes/index.js +1 -1
  993. package/Probes/reflectionProbe.js +4 -4
  994. package/Rendering/boundingBoxRenderer.js +15 -15
  995. package/Rendering/boundingBoxRenderer.js.map +1 -1
  996. package/Rendering/depthRenderer.js +11 -11
  997. package/Rendering/depthRenderer.js.map +1 -1
  998. package/Rendering/depthRendererSceneComponent.js +3 -3
  999. package/Rendering/edgesRenderer.js +11 -11
  1000. package/Rendering/geometryBufferRenderer.js +13 -13
  1001. package/Rendering/geometryBufferRenderer.js.map +1 -1
  1002. package/Rendering/geometryBufferRendererSceneComponent.js +3 -3
  1003. package/Rendering/index.js +13 -13
  1004. package/Rendering/motionBlurConfiguration.js.map +1 -1
  1005. package/Rendering/outlineRenderer.js +8 -8
  1006. package/Rendering/prePassRenderer.js +6 -6
  1007. package/Rendering/prePassRenderer.js.map +1 -1
  1008. package/Rendering/prePassRendererSceneComponent.js +4 -4
  1009. package/Rendering/renderingGroup.js +2 -2
  1010. package/Rendering/renderingManager.js +1 -1
  1011. package/Rendering/screenSpaceReflectionsConfiguration.js.map +1 -1
  1012. package/Rendering/ssao2Configuration.js.map +1 -1
  1013. package/Rendering/subSurfaceConfiguration.js +6 -6
  1014. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  1015. package/Rendering/subSurfaceSceneComponent.js +5 -5
  1016. package/Rendering/utilityLayerRenderer.js +8 -8
  1017. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
  1018. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +2 -2
  1019. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
  1020. package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
  1021. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  1022. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  1023. package/Shaders/ShadersInclude/bumpFragment.js +1 -1
  1024. package/Shaders/ShadersInclude/bumpFragmentFunctions.js +2 -2
  1025. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
  1026. package/Shaders/ShadersInclude/bumpVertex.js +1 -1
  1027. package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
  1028. package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
  1029. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
  1030. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
  1031. package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
  1032. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
  1033. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
  1034. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
  1035. package/Shaders/ShadersInclude/defaultUboDeclaration.js +3 -3
  1036. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
  1037. package/Shaders/ShadersInclude/depthPrePass.js +1 -1
  1038. package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
  1039. package/Shaders/ShadersInclude/fibonacci.js +1 -1
  1040. package/Shaders/ShadersInclude/fogFragment.js +2 -2
  1041. package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
  1042. package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
  1043. package/Shaders/ShadersInclude/fogVertex.js +1 -1
  1044. package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
  1045. package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
  1046. package/Shaders/ShadersInclude/geometryUboDeclaration.js +2 -2
  1047. package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
  1048. package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
  1049. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
  1050. package/Shaders/ShadersInclude/helperFunctions.js +1 -1
  1051. package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
  1052. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
  1053. package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
  1054. package/Shaders/ShadersInclude/importanceSampling.js +1 -1
  1055. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  1056. package/Shaders/ShadersInclude/instancesVertex.js +1 -1
  1057. package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
  1058. package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
  1059. package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
  1060. package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
  1061. package/Shaders/ShadersInclude/lightFragment.js +1 -1
  1062. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
  1063. package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
  1064. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
  1065. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
  1066. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
  1067. package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
  1068. package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
  1069. package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
  1070. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
  1071. package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
  1072. package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
  1073. package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
  1074. package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
  1075. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1076. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1077. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1078. package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
  1079. package/Shaders/ShadersInclude/packingFunctions.js +1 -1
  1080. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
  1081. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  1082. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
  1083. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
  1084. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
  1085. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
  1086. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
  1087. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
  1088. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
  1089. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
  1090. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
  1091. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  1092. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
  1093. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
  1094. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
  1095. package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
  1096. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
  1097. package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
  1098. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
  1099. package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
  1100. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  1101. package/Shaders/ShadersInclude/pbrDebug.js +1 -1
  1102. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
  1103. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  1104. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  1105. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
  1106. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +2 -2
  1107. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +3 -3
  1108. package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
  1109. package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
  1110. package/Shaders/ShadersInclude/pbrUboDeclaration.js +3 -3
  1111. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
  1112. package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
  1113. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
  1114. package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
  1115. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  1116. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
  1117. package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
  1118. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
  1119. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
  1120. package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
  1121. package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
  1122. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
  1123. package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
  1124. package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
  1125. package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
  1126. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +3 -3
  1127. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
  1128. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +3 -3
  1129. package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +3 -3
  1130. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
  1131. package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
  1132. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
  1133. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
  1134. package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
  1135. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
  1136. package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
  1137. package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
  1138. package/Shaders/anaglyph.fragment.js +1 -1
  1139. package/Shaders/background.fragment.js +16 -16
  1140. package/Shaders/background.vertex.js +15 -15
  1141. package/Shaders/blackAndWhite.fragment.js +1 -1
  1142. package/Shaders/bloomMerge.fragment.js +1 -1
  1143. package/Shaders/blur.fragment.js +1 -1
  1144. package/Shaders/chromaticAberration.fragment.js +1 -1
  1145. package/Shaders/circleOfConfusion.fragment.js +1 -1
  1146. package/Shaders/clearQuad.fragment.js +1 -1
  1147. package/Shaders/clearQuad.vertex.js +1 -1
  1148. package/Shaders/color.fragment.js +3 -3
  1149. package/Shaders/color.vertex.js +7 -7
  1150. package/Shaders/colorCorrection.fragment.js +1 -1
  1151. package/Shaders/convolution.fragment.js +1 -1
  1152. package/Shaders/default.fragment.js +26 -26
  1153. package/Shaders/default.vertex.js +31 -31
  1154. package/Shaders/depth.fragment.js +2 -2
  1155. package/Shaders/depth.vertex.js +9 -9
  1156. package/Shaders/depthBoxBlur.fragment.js +1 -1
  1157. package/Shaders/depthOfField.fragment.js +1 -1
  1158. package/Shaders/depthOfFieldMerge.fragment.js +1 -1
  1159. package/Shaders/displayPass.fragment.js +1 -1
  1160. package/Shaders/extractHighlights.fragment.js +2 -2
  1161. package/Shaders/filter.fragment.js +1 -1
  1162. package/Shaders/fxaa.fragment.js +1 -1
  1163. package/Shaders/fxaa.vertex.js +1 -1
  1164. package/Shaders/geometry.fragment.js +5 -5
  1165. package/Shaders/geometry.vertex.js +12 -12
  1166. package/Shaders/glowBlurPostProcess.fragment.js +1 -1
  1167. package/Shaders/glowMapGeneration.fragment.js +2 -2
  1168. package/Shaders/glowMapGeneration.vertex.js +9 -9
  1169. package/Shaders/glowMapMerge.fragment.js +1 -1
  1170. package/Shaders/glowMapMerge.vertex.js +1 -1
  1171. package/Shaders/gpuRenderParticles.fragment.js +6 -6
  1172. package/Shaders/gpuRenderParticles.vertex.js +3 -3
  1173. package/Shaders/gpuUpdateParticles.fragment.js +1 -1
  1174. package/Shaders/gpuUpdateParticles.vertex.js +1 -1
  1175. package/Shaders/grain.fragment.js +2 -2
  1176. package/Shaders/hdrFiltering.fragment.js +5 -5
  1177. package/Shaders/hdrFiltering.vertex.js +1 -1
  1178. package/Shaders/highlights.fragment.js +1 -1
  1179. package/Shaders/imageProcessing.fragment.js +4 -4
  1180. package/Shaders/kernelBlur.fragment.js +5 -5
  1181. package/Shaders/kernelBlur.vertex.js +3 -3
  1182. package/Shaders/layer.fragment.js +2 -2
  1183. package/Shaders/layer.vertex.js +1 -1
  1184. package/Shaders/lensFlare.fragment.js +1 -1
  1185. package/Shaders/lensFlare.vertex.js +1 -1
  1186. package/Shaders/lensHighlights.fragment.js +1 -1
  1187. package/Shaders/line.fragment.js +3 -3
  1188. package/Shaders/line.vertex.js +5 -5
  1189. package/Shaders/minmaxRedux.fragment.js +1 -1
  1190. package/Shaders/motionBlur.fragment.js +1 -1
  1191. package/Shaders/noise.fragment.js +1 -1
  1192. package/Shaders/outline.fragment.js +3 -3
  1193. package/Shaders/outline.vertex.js +11 -11
  1194. package/Shaders/particles.fragment.js +6 -6
  1195. package/Shaders/particles.vertex.js +3 -3
  1196. package/Shaders/pass.fragment.js +1 -1
  1197. package/Shaders/passCube.fragment.js +1 -1
  1198. package/Shaders/pbr.fragment.js +55 -55
  1199. package/Shaders/pbr.vertex.js +31 -31
  1200. package/Shaders/postprocess.vertex.js +1 -1
  1201. package/Shaders/procedural.vertex.js +1 -1
  1202. package/Shaders/refraction.fragment.js +1 -1
  1203. package/Shaders/rgbdDecode.fragment.js +2 -2
  1204. package/Shaders/rgbdEncode.fragment.js +2 -2
  1205. package/Shaders/screenSpaceCurvature.fragment.js +1 -1
  1206. package/Shaders/screenSpaceReflection.fragment.js +1 -1
  1207. package/Shaders/shadowMap.fragment.js +5 -5
  1208. package/Shaders/shadowMap.vertex.js +16 -16
  1209. package/Shaders/sharpen.fragment.js +1 -1
  1210. package/Shaders/spriteMap.fragment.js +1 -1
  1211. package/Shaders/spriteMap.vertex.js +1 -1
  1212. package/Shaders/sprites.fragment.js +4 -4
  1213. package/Shaders/sprites.vertex.js +2 -2
  1214. package/Shaders/ssao.fragment.js +1 -1
  1215. package/Shaders/ssao2.fragment.js +1 -1
  1216. package/Shaders/ssaoCombine.fragment.js +1 -1
  1217. package/Shaders/standard.fragment.js +2 -2
  1218. package/Shaders/stereoscopicInterlace.fragment.js +1 -1
  1219. package/Shaders/subSurfaceScattering.fragment.js +5 -5
  1220. package/Shaders/tonemap.fragment.js +1 -1
  1221. package/Shaders/volumetricLightScattering.fragment.js +1 -1
  1222. package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
  1223. package/Shaders/volumetricLightScatteringPass.vertex.js +9 -9
  1224. package/Shaders/vrDistortionCorrection.fragment.js +1 -1
  1225. package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
  1226. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  1227. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  1228. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  1229. package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
  1230. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
  1231. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
  1232. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
  1233. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
  1234. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
  1235. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
  1236. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  1237. package/Sprites/index.js +6 -6
  1238. package/Sprites/sprite.js +4 -4
  1239. package/Sprites/spriteManager.js +11 -11
  1240. package/Sprites/spriteMap.js +11 -11
  1241. package/Sprites/spriteMap.js.map +1 -1
  1242. package/Sprites/spritePackedManager.js +2 -2
  1243. package/Sprites/spriteRenderer.js +6 -6
  1244. package/Sprites/spriteSceneComponent.js +6 -6
  1245. package/States/index.js +4 -4
  1246. package/XR/features/WebXRAnchorSystem.js +5 -5
  1247. package/XR/features/WebXRBackgroundRemover.js +3 -3
  1248. package/XR/features/WebXRControllerMovement.js +5 -5
  1249. package/XR/features/WebXRControllerPhysics.js +8 -8
  1250. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  1251. package/XR/features/WebXRControllerPointerSelection.js +19 -15
  1252. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  1253. package/XR/features/WebXRControllerTeleportation.js +24 -24
  1254. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  1255. package/XR/features/WebXRDOMOverlay.js +3 -3
  1256. package/XR/features/WebXREyeTracking.js +5 -5
  1257. package/XR/features/WebXRFeaturePointSystem.js +4 -4
  1258. package/XR/features/WebXRHandTracking.js +15 -15
  1259. package/XR/features/WebXRHandTracking.js.map +1 -1
  1260. package/XR/features/WebXRHitTest.js +5 -5
  1261. package/XR/features/WebXRHitTestLegacy.js +5 -5
  1262. package/XR/features/WebXRImageTracking.js +5 -5
  1263. package/XR/features/WebXRLightEstimation.js +12 -12
  1264. package/XR/features/WebXRMeshDetector.js +4 -4
  1265. package/XR/features/WebXRNearInteraction.js +14 -12
  1266. package/XR/features/WebXRNearInteraction.js.map +1 -1
  1267. package/XR/features/WebXRPlaneDetector.js +4 -4
  1268. package/XR/features/WebXRWalkingLocomotion.js +5 -5
  1269. package/XR/features/index.js +19 -19
  1270. package/XR/index.js +12 -12
  1271. package/XR/motionController/index.js +9 -9
  1272. package/XR/motionController/webXRAbstractMotionController.js +6 -6
  1273. package/XR/motionController/webXRControllerComponent.js +1 -1
  1274. package/XR/motionController/webXRGenericHandController.js +2 -2
  1275. package/XR/motionController/webXRGenericMotionController.js +3 -3
  1276. package/XR/motionController/webXRHTCViveMotionController.js +4 -4
  1277. package/XR/motionController/webXRMicrosoftMixedRealityController.js +6 -6
  1278. package/XR/motionController/webXRMotionControllerManager.js +3 -3
  1279. package/XR/motionController/webXROculusTouchMotionController.js +4 -4
  1280. package/XR/motionController/webXRProfiledMotionController.js +10 -10
  1281. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  1282. package/XR/webXRCamera.js +7 -7
  1283. package/XR/webXRDefaultExperience.js +7 -7
  1284. package/XR/webXREnterExitUI.js +3 -3
  1285. package/XR/webXRExperienceHelper.js +8 -8
  1286. package/XR/webXRFeaturesManager.js +1 -1
  1287. package/XR/webXRInput.js +3 -3
  1288. package/XR/webXRInputSource.js +5 -5
  1289. package/XR/webXRManagedOutputCanvas.js +2 -2
  1290. package/XR/webXRSessionManager.js +5 -5
  1291. package/assetContainer.js +4 -4
  1292. package/index.d.ts +1 -0
  1293. package/index.js +44 -43
  1294. package/index.js.map +1 -1
  1295. package/license.md +12 -13
  1296. package/node.js +6 -6
  1297. package/node.js.map +1 -1
  1298. package/package.json +10 -1
  1299. package/readme.md +12 -13
  1300. package/scene.d.ts +5 -147
  1301. package/scene.js +46 -229
  1302. package/scene.js.map +1 -1
  1303. package/scene.lts.d.ts +165 -0
  1304. package/scene.lts.js +68 -0
  1305. package/scene.lts.js.map +1 -0
package/Misc/dds.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dds.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/dds.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scalar } from \"../Maths/math.scalar\";\r\nimport { SphericalPolynomial } from \"../Maths/sphericalPolynomial\";\r\n\r\nimport { InternalTexture, InternalTextureSource } from \"../Materials/Textures/internalTexture\";\r\nimport { Nullable } from \"../types\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { CubeMapToSphericalPolynomialTools } from \"../Misc/HighDynamicRange/cubemapToSphericalPolynomial\";\r\nimport { Scene } from '../scene';\r\nimport { BaseTexture } from '../Materials/Textures/baseTexture';\r\nimport { ThinEngine } from '../Engines/thinEngine';\r\nimport { TextureTools } from \"./textureTools\";\r\n\r\nimport \"../Engines/Extensions/engine.cubeTexture\";\r\n\r\n// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html\r\n// All values and structures referenced from:\r\n// http://msdn.microsoft.com/en-us/library/bb943991.aspx/\r\nvar DDS_MAGIC = 0x20534444;\r\n\r\nvar\r\n //DDSD_CAPS = 0x1,\r\n //DDSD_HEIGHT = 0x2,\r\n //DDSD_WIDTH = 0x4,\r\n //DDSD_PITCH = 0x8,\r\n //DDSD_PIXELFORMAT = 0x1000,\r\n DDSD_MIPMAPCOUNT = 0x20000;\r\n//DDSD_LINEARSIZE = 0x80000,\r\n//DDSD_DEPTH = 0x800000;\r\n\r\n// var DDSCAPS_COMPLEX = 0x8,\r\n// DDSCAPS_MIPMAP = 0x400000,\r\n// DDSCAPS_TEXTURE = 0x1000;\r\n\r\nvar DDSCAPS2_CUBEMAP = 0x200;\r\n// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,\r\n// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,\r\n// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,\r\n// DDSCAPS2_VOLUME = 0x200000;\r\n\r\nvar\r\n //DDPF_ALPHAPIXELS = 0x1,\r\n //DDPF_ALPHA = 0x2,\r\n DDPF_FOURCC = 0x4,\r\n DDPF_RGB = 0x40,\r\n //DDPF_YUV = 0x200,\r\n DDPF_LUMINANCE = 0x20000;\r\n\r\nfunction FourCCToInt32(value: string) {\r\n return value.charCodeAt(0) +\r\n (value.charCodeAt(1) << 8) +\r\n (value.charCodeAt(2) << 16) +\r\n (value.charCodeAt(3) << 24);\r\n}\r\n\r\nfunction Int32ToFourCC(value: number) {\r\n return String.fromCharCode(\r\n value & 0xff,\r\n (value >> 8) & 0xff,\r\n (value >> 16) & 0xff,\r\n (value >> 24) & 0xff\r\n );\r\n}\r\n\r\nvar FOURCC_DXT1 = FourCCToInt32(\"DXT1\");\r\nvar FOURCC_DXT3 = FourCCToInt32(\"DXT3\");\r\nvar FOURCC_DXT5 = FourCCToInt32(\"DXT5\");\r\nvar FOURCC_DX10 = FourCCToInt32(\"DX10\");\r\nvar FOURCC_D3DFMT_R16G16B16A16F = 113;\r\nvar FOURCC_D3DFMT_R32G32B32A32F = 116;\r\n\r\nvar DXGI_FORMAT_R32G32B32A32_FLOAT = 2;\r\nvar DXGI_FORMAT_R16G16B16A16_FLOAT = 10;\r\nvar DXGI_FORMAT_B8G8R8X8_UNORM = 88;\r\n\r\nvar headerLengthInt = 31; // The header length in 32 bit ints\r\n\r\n// Offsets into the header array\r\nvar off_magic = 0;\r\n\r\nvar off_size = 1;\r\nvar off_flags = 2;\r\nvar off_height = 3;\r\nvar off_width = 4;\r\n\r\nvar off_mipmapCount = 7;\r\n\r\nvar off_pfFlags = 20;\r\nvar off_pfFourCC = 21;\r\nvar off_RGBbpp = 22;\r\nvar off_RMask = 23;\r\nvar off_GMask = 24;\r\nvar off_BMask = 25;\r\nvar off_AMask = 26;\r\n// var off_caps1 = 27;\r\nvar off_caps2 = 28;\r\n// var off_caps3 = 29;\r\n// var off_caps4 = 30;\r\nvar off_dxgiFormat = 32;\r\n\r\n/**\r\n * Direct draw surface info\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/direct3ddds/dx-graphics-dds-pguide\r\n */\r\nexport interface DDSInfo {\r\n /**\r\n * Width of the texture\r\n */\r\n width: number;\r\n /**\r\n * Width of the texture\r\n */\r\n height: number;\r\n /**\r\n * Number of Mipmaps for the texture\r\n * @see https://en.wikipedia.org/wiki/Mipmap\r\n */\r\n mipmapCount: number;\r\n /**\r\n * If the textures format is a known fourCC format\r\n * @see https://www.fourcc.org/\r\n */\r\n isFourCC: boolean;\r\n /**\r\n * If the texture is an RGB format eg. DXGI_FORMAT_B8G8R8X8_UNORM format\r\n */\r\n isRGB: boolean;\r\n /**\r\n * If the texture is a lumincance format\r\n */\r\n isLuminance: boolean;\r\n /**\r\n * If this is a cube texture\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/direct3ddds/dds-file-layout-for-cubic-environment-maps\r\n */\r\n isCube: boolean;\r\n /**\r\n * If the texture is a compressed format eg. FOURCC_DXT1\r\n */\r\n isCompressed: boolean;\r\n /**\r\n * The dxgiFormat of the texture\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format\r\n */\r\n dxgiFormat: number;\r\n /**\r\n * Texture type eg. Engine.TEXTURETYPE_UNSIGNED_INT, Engine.TEXTURETYPE_FLOAT\r\n */\r\n textureType: number;\r\n /**\r\n * Sphericle polynomial created for the dds texture\r\n */\r\n sphericalPolynomial?: SphericalPolynomial;\r\n}\r\n\r\n/**\r\n * Class used to provide DDS decompression tools\r\n */\r\nexport class DDSTools {\r\n /**\r\n * Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)\r\n */\r\n public static StoreLODInAlphaChannel = false;\r\n\r\n /**\r\n * Gets DDS information from an array buffer\r\n * @param data defines the array buffer view to read data from\r\n * @returns the DDS information\r\n */\r\n public static GetDDSInfo(data: ArrayBufferView): DDSInfo {\r\n var header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\r\n var extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);\r\n\r\n var mipmapCount = 1;\r\n if (header[off_flags] & DDSD_MIPMAPCOUNT) {\r\n mipmapCount = Math.max(1, header[off_mipmapCount]);\r\n }\r\n\r\n var fourCC = header[off_pfFourCC];\r\n var dxgiFormat = (fourCC === FOURCC_DX10) ? extendedHeader[off_dxgiFormat] : 0;\r\n var textureType = 0;\r\n\r\n switch (fourCC) {\r\n case FOURCC_D3DFMT_R16G16B16A16F:\r\n textureType = 2;\r\n break;\r\n case FOURCC_D3DFMT_R32G32B32A32F:\r\n textureType = 1;\r\n break;\r\n case FOURCC_DX10:\r\n if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {\r\n textureType = 2;\r\n break;\r\n }\r\n if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {\r\n textureType = 1;\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n width: header[off_width],\r\n height: header[off_height],\r\n mipmapCount: mipmapCount,\r\n isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,\r\n isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,\r\n isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,\r\n isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,\r\n isCompressed: (fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5),\r\n dxgiFormat: dxgiFormat,\r\n textureType: textureType\r\n };\r\n }\r\n\r\n private static _GetHalfFloatAsFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Float32Array {\r\n var destArray = new Float32Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = TextureTools.FromHalfFloat(srcData[srcPos]);\r\n destArray[index + 1] = TextureTools.FromHalfFloat(srcData[srcPos + 1]);\r\n destArray[index + 2] = TextureTools.FromHalfFloat(srcData[srcPos + 2]);\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = TextureTools.FromHalfFloat(srcData[srcPos + 3]);\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetHalfFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint16Array {\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n var destArray = new Uint16Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = srcData[srcPos];\r\n destArray[index + 1] = srcData[srcPos + 1];\r\n destArray[index + 2] = srcData[srcPos + 2];\r\n destArray[index + 3] = TextureTools.ToHalfFloat(lod);\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n return new Uint16Array(arrayBuffer, dataOffset, dataLength);\r\n }\r\n\r\n private static _GetFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Float32Array {\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n var destArray = new Float32Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = srcData[srcPos];\r\n destArray[index + 1] = srcData[srcPos + 1];\r\n destArray[index + 2] = srcData[srcPos + 2];\r\n destArray[index + 3] = lod;\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n return new Float32Array(arrayBuffer, dataOffset, dataLength);\r\n }\r\n\r\n private static _GetFloatAsHalfFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint16Array {\r\n var destArray = new Uint16Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n destArray[index] = TextureTools.ToHalfFloat(srcData[index]);\r\n destArray[index + 1] = TextureTools.ToHalfFloat(srcData[index + 1]);\r\n destArray[index + 2] = TextureTools.ToHalfFloat(srcData[index + 2]);\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = TextureTools.ToHalfFloat(lod);\r\n } else {\r\n destArray[index + 3] = TextureTools.ToHalfFloat(srcData[index + 3]);\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetFloatAsUIntRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint8Array {\r\n var destArray = new Uint8Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = Scalar.Clamp(srcData[srcPos]) * 255;\r\n destArray[index + 1] = Scalar.Clamp(srcData[srcPos + 1]) * 255;\r\n destArray[index + 2] = Scalar.Clamp(srcData[srcPos + 2]) * 255;\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = Scalar.Clamp(srcData[srcPos + 3]) * 255;\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetHalfFloatAsUIntRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint8Array {\r\n var destArray = new Uint8Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = Scalar.Clamp(TextureTools.FromHalfFloat(srcData[srcPos])) * 255;\r\n destArray[index + 1] = Scalar.Clamp(TextureTools.FromHalfFloat(srcData[srcPos + 1])) * 255;\r\n destArray[index + 2] = Scalar.Clamp(TextureTools.FromHalfFloat(srcData[srcPos + 2])) * 255;\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = Scalar.Clamp(TextureTools.FromHalfFloat(srcData[srcPos + 3])) * 255;\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, rOffset: number, gOffset: number, bOffset: number, aOffset: number): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n\r\n byteArray[index] = srcData[srcPos + rOffset];\r\n byteArray[index + 1] = srcData[srcPos + gOffset];\r\n byteArray[index + 2] = srcData[srcPos + bOffset];\r\n byteArray[index + 3] = srcData[srcPos + aOffset];\r\n index += 4;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n private static _ExtractLongWordOrder(value: number): number {\r\n if (value === 0 || value === 255 || value === -16777216) {\r\n return 0;\r\n }\r\n\r\n return 1 + DDSTools._ExtractLongWordOrder(value >> 8);\r\n }\r\n\r\n private static _GetRGBArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, rOffset: number, gOffset: number, bOffset: number): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 3;\r\n\r\n byteArray[index] = srcData[srcPos + rOffset];\r\n byteArray[index + 1] = srcData[srcPos + gOffset];\r\n byteArray[index + 2] = srcData[srcPos + bOffset];\r\n index += 3;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n private static _GetLuminanceArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width);\r\n byteArray[index] = srcData[srcPos];\r\n index++;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n /**\r\n * Uploads DDS Levels to a Babylon Texture\r\n * @hidden\r\n */\r\n public static UploadDDSLevels(engine: ThinEngine, texture: InternalTexture, data: ArrayBufferView, info: DDSInfo, loadMipmaps: boolean, faces: number, lodIndex = -1, currentFace?: number, destTypeMustBeFilterable = true) {\r\n var sphericalPolynomialFaces: Nullable<Array<ArrayBufferView>> = null;\r\n if (info.sphericalPolynomial) {\r\n sphericalPolynomialFaces = new Array<ArrayBufferView>();\r\n }\r\n var ext = !!engine.getCaps().s3tc;\r\n\r\n // TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed\r\n texture.generateMipMaps = loadMipmaps;\r\n\r\n var header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\r\n var fourCC: number, width: number, height: number, dataLength: number = 0, dataOffset: number;\r\n var byteArray: Uint8Array, mipmapCount: number, mip: number;\r\n let internalCompressedFormat = 0;\r\n let blockBytes = 1;\r\n\r\n if (header[off_magic] !== DDS_MAGIC) {\r\n Logger.Error(\"Invalid magic number in DDS header\");\r\n return;\r\n }\r\n\r\n if (!info.isFourCC && !info.isRGB && !info.isLuminance) {\r\n Logger.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");\r\n return;\r\n }\r\n\r\n if (info.isCompressed && !ext) {\r\n Logger.Error(\"Compressed textures are not supported on this platform.\");\r\n return;\r\n }\r\n\r\n var bpp = header[off_RGBbpp];\r\n dataOffset = header[off_size] + 4;\r\n\r\n let computeFormats = false;\r\n\r\n if (info.isFourCC) {\r\n fourCC = header[off_pfFourCC];\r\n switch (fourCC) {\r\n case FOURCC_DXT1:\r\n blockBytes = 8;\r\n internalCompressedFormat = 33777;\r\n break;\r\n case FOURCC_DXT3:\r\n blockBytes = 16;\r\n internalCompressedFormat = 33778;\r\n break;\r\n case FOURCC_DXT5:\r\n blockBytes = 16;\r\n internalCompressedFormat = 33779;\r\n break;\r\n case FOURCC_D3DFMT_R16G16B16A16F:\r\n computeFormats = true;\r\n break;\r\n case FOURCC_D3DFMT_R32G32B32A32F:\r\n computeFormats = true;\r\n break;\r\n case FOURCC_DX10:\r\n // There is an additionnal header so dataOffset need to be changed\r\n dataOffset += 5 * 4; // 5 uints\r\n\r\n let supported = false;\r\n switch (info.dxgiFormat) {\r\n case DXGI_FORMAT_R16G16B16A16_FLOAT:\r\n case DXGI_FORMAT_R32G32B32A32_FLOAT:\r\n computeFormats = true;\r\n supported = true;\r\n break;\r\n case DXGI_FORMAT_B8G8R8X8_UNORM:\r\n info.isRGB = true;\r\n info.isFourCC = false;\r\n bpp = 32;\r\n supported = true;\r\n break;\r\n }\r\n\r\n if (supported) {\r\n break;\r\n }\r\n default:\r\n console.error(\"Unsupported FourCC code:\", Int32ToFourCC(fourCC));\r\n return;\r\n }\r\n }\r\n\r\n let rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);\r\n let gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);\r\n let bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);\r\n let aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);\r\n\r\n if (computeFormats) {\r\n internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);\r\n }\r\n\r\n mipmapCount = 1;\r\n if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {\r\n mipmapCount = Math.max(1, header[off_mipmapCount]);\r\n }\r\n\r\n const startFace = currentFace || 0;\r\n const caps = engine.getCaps();\r\n for (var face = startFace; face < faces; face++) {\r\n width = header[off_width];\r\n height = header[off_height];\r\n\r\n for (mip = 0; mip < mipmapCount; ++mip) {\r\n if (lodIndex === -1 || lodIndex === mip) {\r\n // In case of fixed LOD, if the lod has just been uploaded, early exit.\r\n const i = (lodIndex === -1) ? mip : 0;\r\n\r\n if (!info.isCompressed && info.isFourCC) {\r\n texture.format = 5;\r\n dataLength = width * height * 4;\r\n var floatArray: Nullable<ArrayBufferView> = null;\r\n\r\n if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) { // Required because iOS has many issues with float and half float generation\r\n if (bpp === 128) {\r\n floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\r\n }\r\n }\r\n else if (bpp === 64) {\r\n floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\r\n }\r\n }\r\n\r\n texture.type = 0;\r\n }\r\n else {\r\n const floatAvailable = caps.textureFloat && (destTypeMustBeFilterable && caps.textureFloatLinearFiltering || !destTypeMustBeFilterable);\r\n const halfFloatAvailable = caps.textureHalfFloat && (destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering || !destTypeMustBeFilterable);\r\n\r\n const destType =\r\n (bpp === 128 || bpp === 64 && !halfFloatAvailable) && floatAvailable ? 1 :\r\n (bpp === 64 || bpp === 128 && !floatAvailable) && halfFloatAvailable ? 2 : 0;\r\n\r\n let dataGetter: (width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number) => ArrayBufferView;\r\n let dataGetterPolynomial: Nullable<(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number) => ArrayBufferView> = null;\r\n\r\n switch (bpp) {\r\n case 128: {\r\n switch (destType) {\r\n case 1:\r\n dataGetter = DDSTools._GetFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = null;\r\n break;\r\n case 2:\r\n dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\r\n break;\r\n case 0:\r\n dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\r\n break;\r\n }\r\n break;\r\n }\r\n default: { // 64 bpp\r\n switch (destType) {\r\n case 1:\r\n dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = null;\r\n break;\r\n case 2:\r\n dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n break;\r\n case 0:\r\n dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n texture.type = destType;\r\n\r\n floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);\r\n }\r\n }\r\n\r\n if (floatArray) {\r\n engine._uploadDataToTextureDirectly(texture, floatArray, face, i);\r\n }\r\n } else if (info.isRGB) {\r\n texture.type = 0;\r\n if (bpp === 24) {\r\n texture.format = 4;\r\n dataLength = width * height * 3;\r\n byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n } else { // 32\r\n texture.format = 5;\r\n dataLength = width * height * 4;\r\n byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n }\r\n } else if (info.isLuminance) {\r\n var unpackAlignment = engine._getUnpackAlignement();\r\n var unpaddedRowSize = width;\r\n var paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;\r\n dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;\r\n\r\n byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);\r\n texture.format = 1;\r\n texture.type = 0;\r\n\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n } else {\r\n dataLength = Math.max(4, width) / 4 * Math.max(4, height) / 4 * blockBytes;\r\n byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);\r\n\r\n texture.type = 0;\r\n engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);\r\n }\r\n }\r\n dataOffset += bpp ? (width * height * (bpp / 8)) : dataLength;\r\n width *= 0.5;\r\n height *= 0.5;\r\n\r\n width = Math.max(1.0, width);\r\n height = Math.max(1.0, height);\r\n }\r\n\r\n if (currentFace !== undefined) {\r\n // Loading a single face\r\n break;\r\n }\r\n }\r\n if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {\r\n info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({\r\n size: header[off_width],\r\n right: sphericalPolynomialFaces[0],\r\n left: sphericalPolynomialFaces[1],\r\n up: sphericalPolynomialFaces[2],\r\n down: sphericalPolynomialFaces[3],\r\n front: sphericalPolynomialFaces[4],\r\n back: sphericalPolynomialFaces[5],\r\n format: 5,\r\n type: 1,\r\n gammaSpace: false,\r\n });\r\n } else {\r\n info.sphericalPolynomial = undefined;\r\n }\r\n }\r\n}\r\n\r\ndeclare module \"../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\r\n * @param rootUrl defines the url where the file to load is located\r\n * @param scene defines the current scene\r\n * @param lodScale defines scale to apply to the mip map selection\r\n * @param lodOffset defines offset to apply to the mip map selection\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createPrefilteredCubeTexture(rootUrl: string, scene: Nullable<Scene>, lodScale: number, lodOffset: number,\r\n onLoad?: Nullable<(internalTexture: Nullable<InternalTexture>) => void>,\r\n onError?: Nullable<(message?: string, exception?: any) => void>,\r\n format?: number, forcedExtension?: any,\r\n createPolynomials?: boolean): InternalTexture;\r\n }\r\n}\r\n\r\n/**\r\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\r\n * @param rootUrl defines the url where the file to load is located\r\n * @param scene defines the current scene\r\n * @param lodScale defines scale to apply to the mip map selection\r\n * @param lodOffset defines offset to apply to the mip map selection\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\r\n * @returns the cube texture as an InternalTexture\r\n */\r\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl: string, scene: Nullable<Scene>, lodScale: number, lodOffset: number,\r\n onLoad: Nullable<(internalTexture: Nullable<InternalTexture>) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number, forcedExtension: any = null,\r\n createPolynomials: boolean = true): InternalTexture {\r\n var callback = (loadData: any) => {\r\n if (!loadData) {\r\n if (onLoad) {\r\n onLoad(null);\r\n }\r\n return;\r\n }\r\n\r\n let texture = loadData.texture as InternalTexture;\r\n if (!createPolynomials) {\r\n texture._sphericalPolynomial = new SphericalPolynomial();\r\n }\r\n else if (loadData.info.sphericalPolynomial) {\r\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\r\n }\r\n texture._source = InternalTextureSource.CubePrefiltered;\r\n\r\n if (this.getCaps().textureLOD) {\r\n // Do not add extra process if texture lod is supported.\r\n if (onLoad) {\r\n onLoad(texture);\r\n }\r\n return;\r\n }\r\n\r\n const mipSlices = 3;\r\n\r\n var gl = this._gl;\r\n const width = loadData.width;\r\n if (!width) {\r\n return;\r\n }\r\n\r\n const textures: BaseTexture[] = [];\r\n for (let i = 0; i < mipSlices; i++) {\r\n //compute LOD from even spacing in smoothness (matching shader calculation)\r\n let smoothness = i / (mipSlices - 1);\r\n let roughness = 1 - smoothness;\r\n\r\n let minLODIndex = lodOffset; // roughness = 0\r\n let maxLODIndex = Scalar.Log2(width) * lodScale + lodOffset; // roughness = 1\r\n\r\n let lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\r\n let mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\r\n\r\n var glTextureFromLod = new InternalTexture(this, InternalTextureSource.Temp);\r\n glTextureFromLod.type = texture.type;\r\n glTextureFromLod.format = texture.format;\r\n glTextureFromLod.width = Math.pow(2, Math.max(Scalar.Log2(width) - mipmapIndex, 0));\r\n glTextureFromLod.height = glTextureFromLod.width;\r\n glTextureFromLod.isCube = true;\r\n glTextureFromLod._cachedWrapU = 0;\r\n glTextureFromLod._cachedWrapV = 0;\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\r\n\r\n glTextureFromLod.samplingMode = 2;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n\r\n if (loadData.isDDS) {\r\n var info: DDSInfo = loadData.info;\r\n var data: any = loadData.data;\r\n this._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(this, glTextureFromLod, data, info, true, 6, mipmapIndex);\r\n }\r\n else {\r\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n\r\n // Wrap in a base texture for easy binding.\r\n const lodTexture = new BaseTexture(scene);\r\n lodTexture.isCube = true;\r\n lodTexture._texture = glTextureFromLod;\r\n\r\n glTextureFromLod.isReady = true;\r\n textures.push(lodTexture);\r\n }\r\n\r\n texture._lodTextureHigh = textures[2];\r\n texture._lodTextureMid = textures[1];\r\n texture._lodTextureLow = textures[0];\r\n\r\n if (onLoad) {\r\n onLoad(texture);\r\n }\r\n };\r\n\r\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\r\n};\r\n"]}
1
+ {"version":3,"file":"dds.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/dds.ts"],"names":[],"mappings":"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","sourcesContent":["import { Scalar } from \"../Maths/math.scalar\";\r\nimport { SphericalPolynomial } from \"../Maths/sphericalPolynomial\";\r\n\r\nimport { InternalTexture, InternalTextureSource } from \"../Materials/Textures/internalTexture\";\r\nimport { Nullable } from \"../types\";\r\nimport { Logger } from \"../Misc/logger\";\r\nimport { CubeMapToSphericalPolynomialTools } from \"../Misc/HighDynamicRange/cubemapToSphericalPolynomial\";\r\nimport { Scene } from '../scene';\r\nimport { BaseTexture } from '../Materials/Textures/baseTexture';\r\nimport { ThinEngine } from '../Engines/thinEngine';\r\nimport { FromHalfFloat, ToHalfFloat } from \"./textureTools\";\r\n\r\nimport \"../Engines/Extensions/engine.cubeTexture\";\r\n\r\n// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html\r\n// All values and structures referenced from:\r\n// http://msdn.microsoft.com/en-us/library/bb943991.aspx/\r\nconst DDS_MAGIC = 0x20534444;\r\n\r\nconst\r\n //DDSD_CAPS = 0x1,\r\n //DDSD_HEIGHT = 0x2,\r\n //DDSD_WIDTH = 0x4,\r\n //DDSD_PITCH = 0x8,\r\n //DDSD_PIXELFORMAT = 0x1000,\r\n DDSD_MIPMAPCOUNT = 0x20000;\r\n//DDSD_LINEARSIZE = 0x80000,\r\n//DDSD_DEPTH = 0x800000;\r\n\r\n// var DDSCAPS_COMPLEX = 0x8,\r\n// DDSCAPS_MIPMAP = 0x400000,\r\n// DDSCAPS_TEXTURE = 0x1000;\r\n\r\nconst DDSCAPS2_CUBEMAP = 0x200;\r\n// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,\r\n// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,\r\n// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,\r\n// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,\r\n// DDSCAPS2_VOLUME = 0x200000;\r\n\r\nconst\r\n //DDPF_ALPHAPIXELS = 0x1,\r\n //DDPF_ALPHA = 0x2,\r\n DDPF_FOURCC = 0x4,\r\n DDPF_RGB = 0x40,\r\n //DDPF_YUV = 0x200,\r\n DDPF_LUMINANCE = 0x20000;\r\n\r\nfunction FourCCToInt32(value: string) {\r\n return value.charCodeAt(0) +\r\n (value.charCodeAt(1) << 8) +\r\n (value.charCodeAt(2) << 16) +\r\n (value.charCodeAt(3) << 24);\r\n}\r\n\r\nfunction Int32ToFourCC(value: number) {\r\n return String.fromCharCode(\r\n value & 0xff,\r\n (value >> 8) & 0xff,\r\n (value >> 16) & 0xff,\r\n (value >> 24) & 0xff\r\n );\r\n}\r\n\r\nvar FOURCC_DXT1 = FourCCToInt32(\"DXT1\");\r\nvar FOURCC_DXT3 = FourCCToInt32(\"DXT3\");\r\nvar FOURCC_DXT5 = FourCCToInt32(\"DXT5\");\r\nvar FOURCC_DX10 = FourCCToInt32(\"DX10\");\r\nvar FOURCC_D3DFMT_R16G16B16A16F = 113;\r\nvar FOURCC_D3DFMT_R32G32B32A32F = 116;\r\n\r\nvar DXGI_FORMAT_R32G32B32A32_FLOAT = 2;\r\nvar DXGI_FORMAT_R16G16B16A16_FLOAT = 10;\r\nvar DXGI_FORMAT_B8G8R8X8_UNORM = 88;\r\n\r\nvar headerLengthInt = 31; // The header length in 32 bit ints\r\n\r\n// Offsets into the header array\r\nvar off_magic = 0;\r\n\r\nvar off_size = 1;\r\nvar off_flags = 2;\r\nvar off_height = 3;\r\nvar off_width = 4;\r\n\r\nvar off_mipmapCount = 7;\r\n\r\nvar off_pfFlags = 20;\r\nvar off_pfFourCC = 21;\r\nvar off_RGBbpp = 22;\r\nvar off_RMask = 23;\r\nvar off_GMask = 24;\r\nvar off_BMask = 25;\r\nvar off_AMask = 26;\r\n// var off_caps1 = 27;\r\nvar off_caps2 = 28;\r\n// var off_caps3 = 29;\r\n// var off_caps4 = 30;\r\nvar off_dxgiFormat = 32;\r\n\r\n/**\r\n * Direct draw surface info\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/direct3ddds/dx-graphics-dds-pguide\r\n */\r\nexport interface DDSInfo {\r\n /**\r\n * Width of the texture\r\n */\r\n width: number;\r\n /**\r\n * Width of the texture\r\n */\r\n height: number;\r\n /**\r\n * Number of Mipmaps for the texture\r\n * @see https://en.wikipedia.org/wiki/Mipmap\r\n */\r\n mipmapCount: number;\r\n /**\r\n * If the textures format is a known fourCC format\r\n * @see https://www.fourcc.org/\r\n */\r\n isFourCC: boolean;\r\n /**\r\n * If the texture is an RGB format eg. DXGI_FORMAT_B8G8R8X8_UNORM format\r\n */\r\n isRGB: boolean;\r\n /**\r\n * If the texture is a lumincance format\r\n */\r\n isLuminance: boolean;\r\n /**\r\n * If this is a cube texture\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/direct3ddds/dds-file-layout-for-cubic-environment-maps\r\n */\r\n isCube: boolean;\r\n /**\r\n * If the texture is a compressed format eg. FOURCC_DXT1\r\n */\r\n isCompressed: boolean;\r\n /**\r\n * The dxgiFormat of the texture\r\n * @see https://docs.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format\r\n */\r\n dxgiFormat: number;\r\n /**\r\n * Texture type eg. Engine.TEXTURETYPE_UNSIGNED_INT, Engine.TEXTURETYPE_FLOAT\r\n */\r\n textureType: number;\r\n /**\r\n * Sphericle polynomial created for the dds texture\r\n */\r\n sphericalPolynomial?: SphericalPolynomial;\r\n}\r\n\r\n/**\r\n * Class used to provide DDS decompression tools\r\n */\r\nexport class DDSTools {\r\n /**\r\n * Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)\r\n */\r\n public static StoreLODInAlphaChannel = false;\r\n\r\n /**\r\n * Gets DDS information from an array buffer\r\n * @param data defines the array buffer view to read data from\r\n * @returns the DDS information\r\n */\r\n public static GetDDSInfo(data: ArrayBufferView): DDSInfo {\r\n var header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\r\n var extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);\r\n\r\n var mipmapCount = 1;\r\n if (header[off_flags] & DDSD_MIPMAPCOUNT) {\r\n mipmapCount = Math.max(1, header[off_mipmapCount]);\r\n }\r\n\r\n var fourCC = header[off_pfFourCC];\r\n var dxgiFormat = (fourCC === FOURCC_DX10) ? extendedHeader[off_dxgiFormat] : 0;\r\n var textureType = 0;\r\n\r\n switch (fourCC) {\r\n case FOURCC_D3DFMT_R16G16B16A16F:\r\n textureType = 2;\r\n break;\r\n case FOURCC_D3DFMT_R32G32B32A32F:\r\n textureType = 1;\r\n break;\r\n case FOURCC_DX10:\r\n if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {\r\n textureType = 2;\r\n break;\r\n }\r\n if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {\r\n textureType = 1;\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n width: header[off_width],\r\n height: header[off_height],\r\n mipmapCount: mipmapCount,\r\n isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,\r\n isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,\r\n isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,\r\n isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,\r\n isCompressed: (fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5),\r\n dxgiFormat: dxgiFormat,\r\n textureType: textureType\r\n };\r\n }\r\n\r\n private static _GetHalfFloatAsFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Float32Array {\r\n var destArray = new Float32Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = FromHalfFloat(srcData[srcPos]);\r\n destArray[index + 1] = FromHalfFloat(srcData[srcPos + 1]);\r\n destArray[index + 2] = FromHalfFloat(srcData[srcPos + 2]);\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = FromHalfFloat(srcData[srcPos + 3]);\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetHalfFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint16Array {\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n var destArray = new Uint16Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = srcData[srcPos];\r\n destArray[index + 1] = srcData[srcPos + 1];\r\n destArray[index + 2] = srcData[srcPos + 2];\r\n destArray[index + 3] = ToHalfFloat(lod);\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n return new Uint16Array(arrayBuffer, dataOffset, dataLength);\r\n }\r\n\r\n private static _GetFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Float32Array {\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n var destArray = new Float32Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = srcData[srcPos];\r\n destArray[index + 1] = srcData[srcPos + 1];\r\n destArray[index + 2] = srcData[srcPos + 2];\r\n destArray[index + 3] = lod;\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n return new Float32Array(arrayBuffer, dataOffset, dataLength);\r\n }\r\n\r\n private static _GetFloatAsHalfFloatRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint16Array {\r\n var destArray = new Uint16Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n destArray[index] = ToHalfFloat(srcData[index]);\r\n destArray[index + 1] = ToHalfFloat(srcData[index + 1]);\r\n destArray[index + 2] = ToHalfFloat(srcData[index + 2]);\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = ToHalfFloat(lod);\r\n } else {\r\n destArray[index + 3] = ToHalfFloat(srcData[index + 3]);\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetFloatAsUIntRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint8Array {\r\n var destArray = new Uint8Array(dataLength);\r\n var srcData = new Float32Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = Scalar.Clamp(srcData[srcPos]) * 255;\r\n destArray[index + 1] = Scalar.Clamp(srcData[srcPos + 1]) * 255;\r\n destArray[index + 2] = Scalar.Clamp(srcData[srcPos + 2]) * 255;\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = Scalar.Clamp(srcData[srcPos + 3]) * 255;\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetHalfFloatAsUIntRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number): Uint8Array {\r\n var destArray = new Uint8Array(dataLength);\r\n var srcData = new Uint16Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n destArray[index] = Scalar.Clamp(FromHalfFloat(srcData[srcPos])) * 255;\r\n destArray[index + 1] = Scalar.Clamp(FromHalfFloat(srcData[srcPos + 1])) * 255;\r\n destArray[index + 2] = Scalar.Clamp(FromHalfFloat(srcData[srcPos + 2])) * 255;\r\n if (DDSTools.StoreLODInAlphaChannel) {\r\n destArray[index + 3] = lod;\r\n } else {\r\n destArray[index + 3] = Scalar.Clamp(FromHalfFloat(srcData[srcPos + 3])) * 255;\r\n }\r\n index += 4;\r\n }\r\n }\r\n\r\n return destArray;\r\n }\r\n\r\n private static _GetRGBAArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, rOffset: number, gOffset: number, bOffset: number, aOffset: number): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 4;\r\n\r\n byteArray[index] = srcData[srcPos + rOffset];\r\n byteArray[index + 1] = srcData[srcPos + gOffset];\r\n byteArray[index + 2] = srcData[srcPos + bOffset];\r\n byteArray[index + 3] = srcData[srcPos + aOffset];\r\n index += 4;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n private static _ExtractLongWordOrder(value: number): number {\r\n if (value === 0 || value === 255 || value === -16777216) {\r\n return 0;\r\n }\r\n\r\n return 1 + DDSTools._ExtractLongWordOrder(value >> 8);\r\n }\r\n\r\n private static _GetRGBArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, rOffset: number, gOffset: number, bOffset: number): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width) * 3;\r\n\r\n byteArray[index] = srcData[srcPos + rOffset];\r\n byteArray[index + 1] = srcData[srcPos + gOffset];\r\n byteArray[index + 2] = srcData[srcPos + bOffset];\r\n index += 3;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n private static _GetLuminanceArrayBuffer(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer): Uint8Array {\r\n var byteArray = new Uint8Array(dataLength);\r\n var srcData = new Uint8Array(arrayBuffer, dataOffset);\r\n var index = 0;\r\n for (var y = 0; y < height; y++) {\r\n for (var x = 0; x < width; x++) {\r\n var srcPos = (x + y * width);\r\n byteArray[index] = srcData[srcPos];\r\n index++;\r\n }\r\n }\r\n\r\n return byteArray;\r\n }\r\n\r\n /**\r\n * Uploads DDS Levels to a Babylon Texture\r\n * @hidden\r\n */\r\n public static UploadDDSLevels(engine: ThinEngine, texture: InternalTexture, data: ArrayBufferView, info: DDSInfo, loadMipmaps: boolean, faces: number, lodIndex = -1, currentFace?: number, destTypeMustBeFilterable = true) {\r\n var sphericalPolynomialFaces: Nullable<Array<ArrayBufferView>> = null;\r\n if (info.sphericalPolynomial) {\r\n sphericalPolynomialFaces = new Array<ArrayBufferView>();\r\n }\r\n var ext = !!engine.getCaps().s3tc;\r\n\r\n // TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed\r\n texture.generateMipMaps = loadMipmaps;\r\n\r\n var header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\r\n var fourCC: number, width: number, height: number, dataLength: number = 0, dataOffset: number;\r\n var byteArray: Uint8Array, mipmapCount: number, mip: number;\r\n let internalCompressedFormat = 0;\r\n let blockBytes = 1;\r\n\r\n if (header[off_magic] !== DDS_MAGIC) {\r\n Logger.Error(\"Invalid magic number in DDS header\");\r\n return;\r\n }\r\n\r\n if (!info.isFourCC && !info.isRGB && !info.isLuminance) {\r\n Logger.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");\r\n return;\r\n }\r\n\r\n if (info.isCompressed && !ext) {\r\n Logger.Error(\"Compressed textures are not supported on this platform.\");\r\n return;\r\n }\r\n\r\n var bpp = header[off_RGBbpp];\r\n dataOffset = header[off_size] + 4;\r\n\r\n let computeFormats = false;\r\n\r\n if (info.isFourCC) {\r\n fourCC = header[off_pfFourCC];\r\n switch (fourCC) {\r\n case FOURCC_DXT1:\r\n blockBytes = 8;\r\n internalCompressedFormat = 33777;\r\n break;\r\n case FOURCC_DXT3:\r\n blockBytes = 16;\r\n internalCompressedFormat = 33778;\r\n break;\r\n case FOURCC_DXT5:\r\n blockBytes = 16;\r\n internalCompressedFormat = 33779;\r\n break;\r\n case FOURCC_D3DFMT_R16G16B16A16F:\r\n computeFormats = true;\r\n break;\r\n case FOURCC_D3DFMT_R32G32B32A32F:\r\n computeFormats = true;\r\n break;\r\n case FOURCC_DX10:\r\n // There is an additionnal header so dataOffset need to be changed\r\n dataOffset += 5 * 4; // 5 uints\r\n\r\n let supported = false;\r\n switch (info.dxgiFormat) {\r\n case DXGI_FORMAT_R16G16B16A16_FLOAT:\r\n case DXGI_FORMAT_R32G32B32A32_FLOAT:\r\n computeFormats = true;\r\n supported = true;\r\n break;\r\n case DXGI_FORMAT_B8G8R8X8_UNORM:\r\n info.isRGB = true;\r\n info.isFourCC = false;\r\n bpp = 32;\r\n supported = true;\r\n break;\r\n }\r\n\r\n if (supported) {\r\n break;\r\n }\r\n default:\r\n console.error(\"Unsupported FourCC code:\", Int32ToFourCC(fourCC));\r\n return;\r\n }\r\n }\r\n\r\n let rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);\r\n let gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);\r\n let bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);\r\n let aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);\r\n\r\n if (computeFormats) {\r\n internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);\r\n }\r\n\r\n mipmapCount = 1;\r\n if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {\r\n mipmapCount = Math.max(1, header[off_mipmapCount]);\r\n }\r\n\r\n const startFace = currentFace || 0;\r\n const caps = engine.getCaps();\r\n for (var face = startFace; face < faces; face++) {\r\n width = header[off_width];\r\n height = header[off_height];\r\n\r\n for (mip = 0; mip < mipmapCount; ++mip) {\r\n if (lodIndex === -1 || lodIndex === mip) {\r\n // In case of fixed LOD, if the lod has just been uploaded, early exit.\r\n const i = (lodIndex === -1) ? mip : 0;\r\n\r\n if (!info.isCompressed && info.isFourCC) {\r\n texture.format = 5;\r\n dataLength = width * height * 4;\r\n var floatArray: Nullable<ArrayBufferView> = null;\r\n\r\n if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) { // Required because iOS has many issues with float and half float generation\r\n if (bpp === 128) {\r\n floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\r\n }\r\n }\r\n else if (bpp === 64) {\r\n floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\r\n }\r\n }\r\n\r\n texture.type = 0;\r\n }\r\n else {\r\n const floatAvailable = caps.textureFloat && (destTypeMustBeFilterable && caps.textureFloatLinearFiltering || !destTypeMustBeFilterable);\r\n const halfFloatAvailable = caps.textureHalfFloat && (destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering || !destTypeMustBeFilterable);\r\n\r\n const destType =\r\n (bpp === 128 || bpp === 64 && !halfFloatAvailable) && floatAvailable ? 1 :\r\n (bpp === 64 || bpp === 128 && !floatAvailable) && halfFloatAvailable ? 2 : 0;\r\n\r\n let dataGetter: (width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number) => ArrayBufferView;\r\n let dataGetterPolynomial: Nullable<(width: number, height: number, dataOffset: number, dataLength: number, arrayBuffer: ArrayBuffer, lod: number) => ArrayBufferView> = null;\r\n\r\n switch (bpp) {\r\n case 128: {\r\n switch (destType) {\r\n case 1:\r\n dataGetter = DDSTools._GetFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = null;\r\n break;\r\n case 2:\r\n dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\r\n break;\r\n case 0:\r\n dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\r\n break;\r\n }\r\n break;\r\n }\r\n default: { // 64 bpp\r\n switch (destType) {\r\n case 1:\r\n dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = null;\r\n break;\r\n case 2:\r\n dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n break;\r\n case 0:\r\n dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;\r\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n texture.type = destType;\r\n\r\n floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\r\n\r\n if (sphericalPolynomialFaces && i == 0) {\r\n sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);\r\n }\r\n }\r\n\r\n if (floatArray) {\r\n engine._uploadDataToTextureDirectly(texture, floatArray, face, i);\r\n }\r\n } else if (info.isRGB) {\r\n texture.type = 0;\r\n if (bpp === 24) {\r\n texture.format = 4;\r\n dataLength = width * height * 3;\r\n byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n } else { // 32\r\n texture.format = 5;\r\n dataLength = width * height * 4;\r\n byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n }\r\n } else if (info.isLuminance) {\r\n var unpackAlignment = engine._getUnpackAlignement();\r\n var unpaddedRowSize = width;\r\n var paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;\r\n dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;\r\n\r\n byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);\r\n texture.format = 1;\r\n texture.type = 0;\r\n\r\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\r\n } else {\r\n dataLength = Math.max(4, width) / 4 * Math.max(4, height) / 4 * blockBytes;\r\n byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);\r\n\r\n texture.type = 0;\r\n engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);\r\n }\r\n }\r\n dataOffset += bpp ? (width * height * (bpp / 8)) : dataLength;\r\n width *= 0.5;\r\n height *= 0.5;\r\n\r\n width = Math.max(1.0, width);\r\n height = Math.max(1.0, height);\r\n }\r\n\r\n if (currentFace !== undefined) {\r\n // Loading a single face\r\n break;\r\n }\r\n }\r\n if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {\r\n info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({\r\n size: header[off_width],\r\n right: sphericalPolynomialFaces[0],\r\n left: sphericalPolynomialFaces[1],\r\n up: sphericalPolynomialFaces[2],\r\n down: sphericalPolynomialFaces[3],\r\n front: sphericalPolynomialFaces[4],\r\n back: sphericalPolynomialFaces[5],\r\n format: 5,\r\n type: 1,\r\n gammaSpace: false,\r\n });\r\n } else {\r\n info.sphericalPolynomial = undefined;\r\n }\r\n }\r\n}\r\n\r\ndeclare module \"../Engines/thinEngine\" {\r\n export interface ThinEngine {\r\n /**\r\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\r\n * @param rootUrl defines the url where the file to load is located\r\n * @param scene defines the current scene\r\n * @param lodScale defines scale to apply to the mip map selection\r\n * @param lodOffset defines offset to apply to the mip map selection\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\r\n * @returns the cube texture as an InternalTexture\r\n */\r\n createPrefilteredCubeTexture(rootUrl: string, scene: Nullable<Scene>, lodScale: number, lodOffset: number,\r\n onLoad?: Nullable<(internalTexture: Nullable<InternalTexture>) => void>,\r\n onError?: Nullable<(message?: string, exception?: any) => void>,\r\n format?: number, forcedExtension?: any,\r\n createPolynomials?: boolean): InternalTexture;\r\n }\r\n}\r\n\r\n/**\r\n * Create a cube texture from prefiltered data (ie. the mipmaps contain ready to use data for PBR reflection)\r\n * @param rootUrl defines the url where the file to load is located\r\n * @param scene defines the current scene\r\n * @param lodScale defines scale to apply to the mip map selection\r\n * @param lodOffset defines offset to apply to the mip map selection\r\n * @param onLoad defines an optional callback raised when the texture is loaded\r\n * @param onError defines an optional callback raised if there is an issue to load the texture\r\n * @param format defines the format of the data\r\n * @param forcedExtension defines the extension to use to pick the right loader\r\n * @param createPolynomials defines wheter or not to create polynomails harmonics for the texture\r\n * @returns the cube texture as an InternalTexture\r\n */\r\nThinEngine.prototype.createPrefilteredCubeTexture = function (rootUrl: string, scene: Nullable<Scene>, lodScale: number, lodOffset: number,\r\n onLoad: Nullable<(internalTexture: Nullable<InternalTexture>) => void> = null,\r\n onError: Nullable<(message?: string, exception?: any) => void> = null,\r\n format?: number, forcedExtension: any = null,\r\n createPolynomials: boolean = true): InternalTexture {\r\n var callback = (loadData: any) => {\r\n if (!loadData) {\r\n if (onLoad) {\r\n onLoad(null);\r\n }\r\n return;\r\n }\r\n\r\n let texture = loadData.texture as InternalTexture;\r\n if (!createPolynomials) {\r\n texture._sphericalPolynomial = new SphericalPolynomial();\r\n }\r\n else if (loadData.info.sphericalPolynomial) {\r\n texture._sphericalPolynomial = loadData.info.sphericalPolynomial;\r\n }\r\n texture._source = InternalTextureSource.CubePrefiltered;\r\n\r\n if (this.getCaps().textureLOD) {\r\n // Do not add extra process if texture lod is supported.\r\n if (onLoad) {\r\n onLoad(texture);\r\n }\r\n return;\r\n }\r\n\r\n const mipSlices = 3;\r\n\r\n var gl = this._gl;\r\n const width = loadData.width;\r\n if (!width) {\r\n return;\r\n }\r\n\r\n const textures: BaseTexture[] = [];\r\n for (let i = 0; i < mipSlices; i++) {\r\n //compute LOD from even spacing in smoothness (matching shader calculation)\r\n let smoothness = i / (mipSlices - 1);\r\n let roughness = 1 - smoothness;\r\n\r\n let minLODIndex = lodOffset; // roughness = 0\r\n let maxLODIndex = Scalar.Log2(width) * lodScale + lodOffset; // roughness = 1\r\n\r\n let lodIndex = minLODIndex + (maxLODIndex - minLODIndex) * roughness;\r\n let mipmapIndex = Math.round(Math.min(Math.max(lodIndex, 0), maxLODIndex));\r\n\r\n var glTextureFromLod = new InternalTexture(this, InternalTextureSource.Temp);\r\n glTextureFromLod.type = texture.type;\r\n glTextureFromLod.format = texture.format;\r\n glTextureFromLod.width = Math.pow(2, Math.max(Scalar.Log2(width) - mipmapIndex, 0));\r\n glTextureFromLod.height = glTextureFromLod.width;\r\n glTextureFromLod.isCube = true;\r\n glTextureFromLod._cachedWrapU = 0;\r\n glTextureFromLod._cachedWrapV = 0;\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, glTextureFromLod, true);\r\n\r\n glTextureFromLod.samplingMode = 2;\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n\r\n if (loadData.isDDS) {\r\n var info: DDSInfo = loadData.info;\r\n var data: any = loadData.data;\r\n this._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(this, glTextureFromLod, data, info, true, 6, mipmapIndex);\r\n }\r\n else {\r\n Logger.Warn(\"DDS is the only prefiltered cube map supported so far.\");\r\n }\r\n\r\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\r\n\r\n // Wrap in a base texture for easy binding.\r\n const lodTexture = new BaseTexture(scene);\r\n lodTexture.isCube = true;\r\n lodTexture._texture = glTextureFromLod;\r\n\r\n glTextureFromLod.isReady = true;\r\n textures.push(lodTexture);\r\n }\r\n\r\n texture._lodTextureHigh = textures[2];\r\n texture._lodTextureMid = textures[1];\r\n texture._lodTextureLow = textures[0];\r\n\r\n if (onLoad) {\r\n onLoad(texture);\r\n }\r\n };\r\n\r\n return this.createCubeTexture(rootUrl, scene, null, false, callback, onError, format, forcedExtension, createPolynomials, lodScale, lodOffset);\r\n};\r\n"]}
@@ -1,7 +1,7 @@
1
- import { Tags } from "../Misc/tags";
2
- import { Quaternion, Vector2, Vector3, Matrix } from "../Maths/math.vector";
3
- import { _DevTools } from './devTools';
4
- import { Color4, Color3 } from '../Maths/math.color';
1
+ import { Tags } from "../Misc/tags.js";
2
+ import { Quaternion, Vector2, Vector3, Matrix } from "../Maths/math.vector.js";
3
+ import { _WarnImport } from './devTools.js';
4
+ import { Color4, Color3 } from '../Maths/math.color.js';
5
5
  var __decoratorInitialStore = {};
6
6
  var __mergedStore = {};
7
7
  var _copySource = function (creationFunction, source, instanciate) {
@@ -348,19 +348,19 @@ var SerializationHelper = /** @class */ (function () {
348
348
  SerializationHelper.AllowLoadingUniqueId = false;
349
349
  /** @hidden */
350
350
  SerializationHelper._ImageProcessingConfigurationParser = function (sourceProperty) {
351
- throw _DevTools.WarnImport("ImageProcessingConfiguration");
351
+ throw _WarnImport("ImageProcessingConfiguration");
352
352
  };
353
353
  /** @hidden */
354
354
  SerializationHelper._FresnelParametersParser = function (sourceProperty) {
355
- throw _DevTools.WarnImport("FresnelParameters");
355
+ throw _WarnImport("FresnelParameters");
356
356
  };
357
357
  /** @hidden */
358
358
  SerializationHelper._ColorCurvesParser = function (sourceProperty) {
359
- throw _DevTools.WarnImport("ColorCurves");
359
+ throw _WarnImport("ColorCurves");
360
360
  };
361
361
  /** @hidden */
362
362
  SerializationHelper._TextureParser = function (sourceProperty, scene, rootUrl) {
363
- throw _DevTools.WarnImport("Texture");
363
+ throw _WarnImport("Texture");
364
364
  };
365
365
  return SerializationHelper;
366
366
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAUrD,IAAI,uBAAuB,GAAG,EAAE,CAAC;AACjC,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,IAAI,WAAW,GAAG,UAAa,gBAAyB,EAAE,MAAS,EAAE,WAAoB;IACrF,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;IAErC,OAAO;IACP,IAAI,IAAI,EAAE;QACN,IAAI,CAAC,SAAS,CAAC,WAAW,EAAQ,MAAO,CAAC,IAAI,CAAC,CAAC;KACnD;IAED,IAAI,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE7C,aAAa;IACb,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;QAC7B,IAAI,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,cAAc,GAAS,MAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;QAE3C,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,EAAE;YAClI,QAAQ,YAAY,EAAE;gBAClB,KAAK,CAAC,CAAC,CAAK,QAAQ;gBACpB,KAAK,CAAC,CAAC,CAAK,iBAAiB;gBAC7B,KAAK,EAAE,EAAK,mBAAmB;oBACrB,WAAY,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;oBAC9C,MAAM;gBACV,KAAK,CAAC,EAAM,UAAU;oBACZ,WAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,IAAI,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;oBACxH,MAAM;gBACV,KAAK,CAAC,CAAC,CAAK,SAAS;gBACrB,KAAK,CAAC,CAAC,CAAK,oBAAoB;gBAChC,KAAK,CAAC,CAAC,CAAK,UAAU;gBACtB,KAAK,CAAC,CAAC,CAAK,UAAU;gBACtB,KAAK,CAAC,CAAC,CAAK,eAAe;gBAC3B,KAAK,EAAE,CAAC,CAAI,aAAa;gBACzB,KAAK,EAAE,EAAK,SAAS;oBACX,WAAY,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;oBACrF,MAAM;aACb;SACJ;KACJ;IAED,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,SAAS,cAAc,CAAC,MAAW;IAC/B,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAErC,IAAI,CAAO,uBAAwB,CAAC,QAAQ,CAAC,EAAE;QACrC,uBAAwB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;KACjD;IAED,OAAa,uBAAwB,CAAC,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAW;IAC/B,IAAI,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAErC,IAAU,aAAc,CAAC,QAAQ,CAAC,EAAE;QAChC,OAAa,aAAc,CAAC,QAAQ,CAAC,CAAC;KACzC;IAEK,aAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI,KAAK,GAAS,aAAc,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,aAAa,GAAG,MAAM,CAAC;IAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,OAAO,UAAU,EAAE;QACf,IAAI,YAAY,GAAS,uBAAwB,CAAC,UAAU,CAAC,CAAC;QAC9D,KAAK,IAAI,QAAQ,IAAI,YAAY,EAAE;YAC/B,KAAK,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;SAC5C;QAED,IAAI,QAAM,SAAK,CAAC;QAChB,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,GAAG;YACC,QAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAM,CAAC,YAAY,EAAE;gBACtB,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM;aACT;YAED,IAAI,QAAM,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE;gBACtC,MAAM;aACT;YAED,aAAa,GAAG,QAAM,CAAC;SAC1B,QACM,QAAM,EAAE;QAEf,IAAI,IAAI,EAAE;YACN,MAAM;SACT;QAED,UAAU,GAAG,QAAM,CAAC,YAAY,EAAE,CAAC;QACnC,aAAa,GAAG,QAAM,CAAC;KAC1B;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAY,EAAE,UAAmB;IACjE,OAAO,UAAC,MAAW,EAAE,WAA4B;QAC7C,IAAI,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YAC1B,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;SACpE;IACL,CAAC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB,EAAE,SAAkC;IAAlC,0BAAA,EAAA,gBAAkC;IACjF,OAAO,UAAC,MAAW,EAAE,WAAmB;QACpC,IAAI,GAAG,GAAG,SAAS,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE;YACvC,GAAG,EAAE;gBACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YACD,GAAG,EAAE,UAAqB,KAAK;gBAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;oBACrB,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAElB,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YACD,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,SAAkC;IAAlC,0BAAA,EAAA,gBAAkC;IACjF,OAAO,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,UAAmB;IACzC,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe;AACrE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IAClD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACjD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB;AACtE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,UAAmB;IAC5D,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,4BAA4B;AAClF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IAClD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IAClD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB;AACvE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAAmB;IACxD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,wBAAwB;AAC9E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAmB;IACtD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe;AACrE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACjD,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU;AAChE,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,UAAmB;IACvE,OAAO,0BAA0B,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB;AACzE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAmB;IACrD,OAAO,0BAA0B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,oBAAoB;AAC3E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAmB;IACjD,OAAO,0BAA0B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAmB;IAC1D,OAAO,0BAA0B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,0BAA0B;AACjF,CAAC;AAED;;GAEG;AACH;IAAA;IAwNA,CAAC;IA9LG;;;;OAIG;IACW,8CAA0B,GAAxC,UAAyC,MAAmB,EAAE,WAAgB;QAC1E,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,WAAW,CAAC,UAAU,GAAG,EAAE,CAAC;YAC5B,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;gBACtF,IAAI,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gBAElD,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;aACtD;SACJ;IACL,CAAC;IAED;;;;;OAKG;IACW,6BAAS,GAAvB,UAA2B,MAAS,EAAE,mBAAyB;QAC3D,IAAI,CAAC,mBAAmB,EAAE;YACtB,mBAAmB,GAAG,EAAE,CAAC;SAC5B;QAED,OAAO;QACP,IAAI,IAAI,EAAE;YACN,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACnD;QAED,IAAI,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAElD,aAAa;QACb,KAAK,IAAI,QAAQ,IAAI,oBAAoB,EAAE;YACvC,IAAI,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,UAAU,IAAI,QAAQ,CAAC;YACnE,IAAI,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;YAC3C,IAAI,cAAc,GAAS,MAAO,CAAC,QAAQ,CAAC,CAAC;YAE7C,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,EAAE;gBAClI,QAAQ,YAAY,EAAE;oBAClB,KAAK,CAAC,EAAM,QAAQ;wBAChB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC;wBACzD,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;wBACrE,MAAM;oBACV,KAAK,CAAC,EAAM,SAAS;wBACjB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;wBACnE,MAAM;oBACV,KAAK,CAAC,EAAM,oBAAoB;wBAC5B,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;wBACrE,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;wBACnE,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;wBACnE,MAAM;oBACV,KAAK,CAAC,EAAM,iBAAiB;wBACzB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,EAAE,CAAC;wBAC5D,MAAM;oBACV,KAAK,CAAC,EAAM,eAAe;wBACvB,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,SAAS,EAAE,CAAC;wBACrE,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,mBAAmB,CAAC,kBAAkB,CAAC,GAAY,cAAe,CAAC,OAAO,EAAE,CAAC;wBAC7E,MAAM;oBACV,KAAK,CAAC,EAAM,mBAAmB;wBAC3B,mBAAmB,CAAC,kBAAkB,CAAC,GAAkC,cAAe,CAAC,SAAS,EAAE,CAAC;wBACrG,MAAM;oBACV,KAAK,EAAE,EAAK,aAAa;wBACrB,mBAAmB,CAAC,kBAAkB,CAAC,GAAgB,cAAe,CAAC,OAAO,EAAE,CAAC;wBACjF,MAAM;oBACV,KAAK,EAAE,EAAK,mBAAmB;wBAC3B,mBAAmB,CAAC,kBAAkB,CAAC,GAAY,cAAe,CAAC,EAAE,CAAC;wBACtE,MAAM;oBACV,KAAK,EAAE,EAAK,SAAS;wBACjB,mBAAmB,CAAC,kBAAkB,CAAC,GAAY,cAAe,CAAC,OAAO,EAAE,CAAC;wBAC7E,MAAM;iBACb;aACJ;SACJ;QAED,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACW,yBAAK,GAAnB,UAAuB,gBAAyB,EAAE,MAAW,EAAE,KAAsB,EAAE,OAAgC;QAAhC,wBAAA,EAAA,cAAgC;QACnH,IAAI,WAAW,GAAG,gBAAgB,EAAE,CAAC;QAErC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,EAAE,CAAC;SAChB;QAED,OAAO;QACP,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SAC5C;QAED,IAAI,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAE7C,aAAa;QACb,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;YAC7B,IAAI,kBAAkB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,UAAU,IAAI,QAAQ,CAAC,CAAC;YACvE,IAAI,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC;YAE3C,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,mBAAmB,CAAC,oBAAoB,CAAC,EAAE;gBAClI,IAAI,IAAI,GAAQ,WAAW,CAAC;gBAC5B,QAAQ,YAAY,EAAE;oBAClB,KAAK,CAAC,EAAM,QAAQ;wBAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;wBAChC,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,IAAI,KAAK,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;yBACvF;wBACD,MAAM;oBACV,KAAK,CAAC,EAAM,SAAS;wBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBAClD,MAAM;oBACV,KAAK,CAAC,EAAM,oBAAoB;wBAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;wBAC9E,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBACnD,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBACnD,MAAM;oBACV,KAAK,CAAC,EAAM,iBAAiB;wBACzB,IAAI,KAAK,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;yBAC1D;wBACD,MAAM;oBACV,KAAK,CAAC,EAAM,eAAe;wBACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;wBACxE,MAAM;oBACV,KAAK,CAAC,EAAM,UAAU;wBAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBAClD,MAAM;oBACV,KAAK,CAAC,EAAM,mBAAmB;wBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,mBAAmB,CAAC,mCAAmC,CAAC,cAAc,CAAC,CAAC;wBACzF,MAAM;oBACV,KAAK,EAAE,EAAK,aAAa;wBACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBACtD,MAAM;oBACV,KAAK,EAAE,EAAK,mBAAmB;wBAC3B,IAAI,KAAK,EAAE;4BACP,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;yBACxD;oBACL,KAAK,EAAE,EAAK,SAAS;wBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;wBAClD,MAAM;iBACb;aACJ;SACJ;QAED,OAAO,WAAW,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACW,yBAAK,GAAnB,UAAuB,gBAAyB,EAAE,MAAS;QACvD,OAAO,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACW,+BAAW,GAAzB,UAA6B,gBAAyB,EAAE,MAAS;QAC7D,OAAO,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAtND;;MAEE;IACY,wCAAoB,GAAG,KAAK,CAAC;IAE3C,cAAc;IACA,uDAAmC,GAAG,UAAC,cAAmB;QACpE,MAAM,SAAS,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC/D,CAAC,CAAA;IAED,cAAc;IACA,4CAAwB,GAAG,UAAC,cAAmB;QACzD,MAAM,SAAS,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IACpD,CAAC,CAAA;IAED,cAAc;IACA,sCAAkB,GAAG,UAAC,cAAmB;QACnD,MAAM,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAA;IAED,cAAc;IACA,kCAAc,GAAG,UAAC,cAAmB,EAAE,KAAY,EAAE,OAAe;QAC9E,MAAM,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAA;IAgML,0BAAC;CAAA,AAxND,IAwNC;SAxNY,mBAAmB;AA6NhC;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAwC,MAAW,EAAE,WAAmB,EAAE,UAA0E,EAAE,SAAa;IAC7L,4CAA4C;IAC5C,IAAM,MAAM,GAAG,UAAU,CAAC,KAAM,CAAC;IAEjC,iLAAiL;IACjL,UAAU,CAAC,KAAK,GAAG;QAAC,gBAAwB;aAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;YAAxB,2BAAwB;;QACxC,oHAAoH;QACpH,IAAI,IAAI,GAAG,MAAM,CAAC;QAElB,2KAA2K;QAC3K,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxD,IAAM,YAAU,GAAG,OAAO,CAAC,WAAW,CAA0C,CAAC;YACjF,0LAA0L;YAC1L,IAAI,SAAS,EAAE;gBACX,mHAAmH;gBACnH,IAAI,GAAG;oBAAC,gBAAwB;yBAAxB,UAAwB,EAAxB,qBAAwB,EAAxB,IAAwB;wBAAxB,2BAAwB;;oBAAK,OAAA,SAAS,eAAI,MAAM,EAAE,CAAC,CAAC,YAAU,eAAI,MAAM,EAAE,CAAC,CAAC,MAAM,eAAI,MAAM,CAAC;gBAAhE,CAAgE,CAAC;aACzG;iBAAM;gBACH,mEAAmE;gBACnE,IAAI,GAAG,YAAU,CAAC;aACrB;SACJ;QAED,0EAA0E;QAC1E,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAE3B,wJAAwJ;QACxJ,0IAA0I;QAC1I,OAAO,IAAI,eAAI,MAAM,EAAE;IAC3B,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,cAAc,CAAC,MAAM,GAAG,UAAgD,SAAY;IAChF,OAAO,UAAC,MAAW,EAAE,WAAmB,EAAE,UAA0E,IAAK,OAAA,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,EAA1D,CAA0D,CAAC;AACxL,CAAC,CAAC","sourcesContent":["import { Tags } from \"../Misc/tags\";\r\nimport { Nullable } from \"../types\";\r\nimport { Quaternion, Vector2, Vector3, Matrix } from \"../Maths/math.vector\";\r\nimport { _DevTools } from './devTools';\r\nimport { IAnimatable } from '../Animations/animatable.interface';\r\nimport { Color4, Color3 } from '../Maths/math.color';\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\n\r\ndeclare type ImageProcessingConfiguration = import(\"../Materials/imageProcessingConfiguration\").ImageProcessingConfiguration;\r\ndeclare type FresnelParameters = import(\"../Materials/fresnelParameters\").FresnelParameters;\r\ndeclare type ColorCurves = import(\"../Materials/colorCurves\").ColorCurves;\r\ndeclare type BaseTexture = import(\"../Materials/Textures/baseTexture\").BaseTexture;\r\n\r\nvar __decoratorInitialStore = {};\r\nvar __mergedStore = {};\r\n\r\nvar _copySource = function <T>(creationFunction: () => T, source: T, instanciate: boolean): T {\r\n var destination = creationFunction();\r\n\r\n // Tags\r\n if (Tags) {\r\n Tags.AddTagsTo(destination, (<any>source).tags);\r\n }\r\n\r\n var classStore = getMergedStore(destination);\r\n\r\n // Properties\r\n for (var property in classStore) {\r\n var propertyDescriptor = classStore[property];\r\n var sourceProperty = (<any>source)[property];\r\n var propertyType = propertyDescriptor.type;\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n switch (propertyType) {\r\n case 0: // Value\r\n case 6: // Mesh reference\r\n case 11: // Camera reference\r\n (<any>destination)[property] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n (<any>destination)[property] = (instanciate || sourceProperty.isRenderTarget) ? sourceProperty : sourceProperty.clone();\r\n break;\r\n case 2: // Color3\r\n case 3: // FresnelParameters\r\n case 4: // Vector2\r\n case 5: // Vector3\r\n case 7: // Color Curves\r\n case 10: // Quaternion\r\n case 12: // Matrix\r\n (<any>destination)[property] = instanciate ? sourceProperty : sourceProperty.clone();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return destination;\r\n};\r\n\r\nfunction getDirectStore(target: any): any {\r\n var classKey = target.getClassName();\r\n\r\n if (!(<any>__decoratorInitialStore)[classKey]) {\r\n (<any>__decoratorInitialStore)[classKey] = {};\r\n }\r\n\r\n return (<any>__decoratorInitialStore)[classKey];\r\n}\r\n\r\n/**\r\n * Return the list of properties flagged as serializable\r\n * @param target: host object\r\n */\r\nfunction getMergedStore(target: any): any {\r\n let classKey = target.getClassName();\r\n\r\n if ((<any>__mergedStore)[classKey]) {\r\n return (<any>__mergedStore)[classKey];\r\n }\r\n\r\n (<any>__mergedStore)[classKey] = {};\r\n\r\n let store = (<any>__mergedStore)[classKey];\r\n let currentTarget = target;\r\n let currentKey = classKey;\r\n while (currentKey) {\r\n let initialStore = (<any>__decoratorInitialStore)[currentKey];\r\n for (var property in initialStore) {\r\n store[property] = initialStore[property];\r\n }\r\n\r\n let parent: any;\r\n let done = false;\r\n\r\n do {\r\n parent = Object.getPrototypeOf(currentTarget);\r\n if (!parent.getClassName) {\r\n done = true;\r\n break;\r\n }\r\n\r\n if (parent.getClassName() !== currentKey) {\r\n break;\r\n }\r\n\r\n currentTarget = parent;\r\n }\r\n while (parent);\r\n\r\n if (done) {\r\n break;\r\n }\r\n\r\n currentKey = parent.getClassName();\r\n currentTarget = parent;\r\n }\r\n\r\n return store;\r\n}\r\n\r\nfunction generateSerializableMember(type: number, sourceName?: string) {\r\n return (target: any, propertyKey: string | symbol) => {\r\n var classStore = getDirectStore(target);\r\n\r\n if (!classStore[propertyKey]) {\r\n classStore[propertyKey] = { type: type, sourceName: sourceName };\r\n }\r\n };\r\n}\r\n\r\nfunction generateExpandMember(setCallback: string, targetKey: Nullable<string> = null) {\r\n return (target: any, propertyKey: string) => {\r\n var key = targetKey || (\"_\" + propertyKey);\r\n Object.defineProperty(target, propertyKey, {\r\n get: function (this: any) {\r\n return this[key];\r\n },\r\n set: function (this: any, value) {\r\n if (this[key] === value) {\r\n return;\r\n }\r\n this[key] = value;\r\n\r\n target[setCallback].apply(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\r\nexport function expandToProperty(callback: string, targetKey: Nullable<string> = null) {\r\n return generateExpandMember(callback, targetKey);\r\n}\r\n\r\nexport function serialize(sourceName?: string) {\r\n return generateSerializableMember(0, sourceName); // value member\r\n}\r\n\r\nexport function serializeAsTexture(sourceName?: string) {\r\n return generateSerializableMember(1, sourceName); // texture member\r\n}\r\n\r\nexport function serializeAsColor3(sourceName?: string) {\r\n return generateSerializableMember(2, sourceName); // color3 member\r\n}\r\n\r\nexport function serializeAsFresnelParameters(sourceName?: string) {\r\n return generateSerializableMember(3, sourceName); // fresnel parameters member\r\n}\r\n\r\nexport function serializeAsVector2(sourceName?: string) {\r\n return generateSerializableMember(4, sourceName); // vector2 member\r\n}\r\n\r\nexport function serializeAsVector3(sourceName?: string) {\r\n return generateSerializableMember(5, sourceName); // vector3 member\r\n}\r\n\r\nexport function serializeAsMeshReference(sourceName?: string) {\r\n return generateSerializableMember(6, sourceName); // mesh reference member\r\n}\r\n\r\nexport function serializeAsColorCurves(sourceName?: string) {\r\n return generateSerializableMember(7, sourceName); // color curves\r\n}\r\n\r\nexport function serializeAsColor4(sourceName?: string) {\r\n return generateSerializableMember(8, sourceName); // color 4\r\n}\r\n\r\nexport function serializeAsImageProcessingConfiguration(sourceName?: string) {\r\n return generateSerializableMember(9, sourceName); // image processing\r\n}\r\n\r\nexport function serializeAsQuaternion(sourceName?: string) {\r\n return generateSerializableMember(10, sourceName); // quaternion member\r\n}\r\n\r\nexport function serializeAsMatrix(sourceName?: string) {\r\n return generateSerializableMember(12, sourceName); // matrix member\r\n}\r\n\r\n/**\r\n * Decorator used to define property that can be serialized as reference to a camera\r\n * @param sourceName defines the name of the property to decorate\r\n */\r\nexport function serializeAsCameraReference(sourceName?: string) {\r\n return generateSerializableMember(11, sourceName); // camera reference member\r\n}\r\n\r\n/**\r\n * Class used to help serialization objects\r\n */\r\nexport class SerializationHelper {\r\n /**\r\n * Gets or sets a boolean to indicate if the UniqueId property should be serialized\r\n */\r\n public static AllowLoadingUniqueId = false;\r\n\r\n /** @hidden */\r\n public static _ImageProcessingConfigurationParser = (sourceProperty: any): ImageProcessingConfiguration => {\r\n throw _DevTools.WarnImport(\"ImageProcessingConfiguration\");\r\n }\r\n\r\n /** @hidden */\r\n public static _FresnelParametersParser = (sourceProperty: any): FresnelParameters => {\r\n throw _DevTools.WarnImport(\"FresnelParameters\");\r\n }\r\n\r\n /** @hidden */\r\n public static _ColorCurvesParser = (sourceProperty: any): ColorCurves => {\r\n throw _DevTools.WarnImport(\"ColorCurves\");\r\n }\r\n\r\n /** @hidden */\r\n public static _TextureParser = (sourceProperty: any, scene: Scene, rootUrl: string): Nullable<BaseTexture> => {\r\n throw _DevTools.WarnImport(\"Texture\");\r\n }\r\n\r\n /**\r\n * Appends the serialized animations from the source animations\r\n * @param source Source containing the animations\r\n * @param destination Target to store the animations\r\n */\r\n public static AppendSerializedAnimations(source: IAnimatable, destination: any): void {\r\n if (source.animations) {\r\n destination.animations = [];\r\n for (var animationIndex = 0; animationIndex < source.animations.length; animationIndex++) {\r\n var animation = source.animations[animationIndex];\r\n\r\n destination.animations.push(animation.serialize());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Static function used to serialized a specific entity\r\n * @param entity defines the entity to serialize\r\n * @param serializationObject defines the optional target object where serialization data will be stored\r\n * @returns a JSON compatible object representing the serialization of the entity\r\n */\r\n public static Serialize<T>(entity: T, serializationObject?: any): any {\r\n if (!serializationObject) {\r\n serializationObject = {};\r\n }\r\n\r\n // Tags\r\n if (Tags) {\r\n serializationObject.tags = Tags.GetTags(entity);\r\n }\r\n\r\n var serializedProperties = getMergedStore(entity);\r\n\r\n // Properties\r\n for (var property in serializedProperties) {\r\n var propertyDescriptor = serializedProperties[property];\r\n var targetPropertyName = propertyDescriptor.sourceName || property;\r\n var propertyType = propertyDescriptor.type;\r\n var sourceProperty = (<any>entity)[property];\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n switch (propertyType) {\r\n case 0: // Value\r\n serializationObject[targetPropertyName] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 2: // Color3\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 3: // FresnelParameters\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 4: // Vector2\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 5: // Vector3\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 6: // Mesh reference\r\n serializationObject[targetPropertyName] = sourceProperty.id;\r\n break;\r\n case 7: // Color Curves\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 8: // Color 4\r\n serializationObject[targetPropertyName] = (<Color4>sourceProperty).asArray();\r\n break;\r\n case 9: // Image Processing\r\n serializationObject[targetPropertyName] = (<ImageProcessingConfiguration>sourceProperty).serialize();\r\n break;\r\n case 10: // Quaternion\r\n serializationObject[targetPropertyName] = (<Quaternion>sourceProperty).asArray();\r\n break;\r\n case 11: // Camera reference\r\n serializationObject[targetPropertyName] = (<Camera>sourceProperty).id;\r\n break;\r\n case 12: // Matrix\r\n serializationObject[targetPropertyName] = (<Matrix>sourceProperty).asArray();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Creates a new entity from a serialization data object\r\n * @param creationFunction defines a function used to instanciated the new entity\r\n * @param source defines the source serialization data\r\n * @param scene defines the hosting scene\r\n * @param rootUrl defines the root url for resources\r\n * @returns a new entity\r\n */\r\n public static Parse<T>(creationFunction: () => T, source: any, scene: Nullable<Scene>, rootUrl: Nullable<string> = null): T {\r\n var destination = creationFunction();\r\n\r\n if (!rootUrl) {\r\n rootUrl = \"\";\r\n }\r\n\r\n // Tags\r\n if (Tags) {\r\n Tags.AddTagsTo(destination, source.tags);\r\n }\r\n\r\n var classStore = getMergedStore(destination);\r\n\r\n // Properties\r\n for (var property in classStore) {\r\n var propertyDescriptor = classStore[property];\r\n var sourceProperty = source[propertyDescriptor.sourceName || property];\r\n var propertyType = propertyDescriptor.type;\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n var dest = <any>destination;\r\n switch (propertyType) {\r\n case 0: // Value\r\n dest[property] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n if (scene) {\r\n dest[property] = SerializationHelper._TextureParser(sourceProperty, scene, rootUrl);\r\n }\r\n break;\r\n case 2: // Color3\r\n dest[property] = Color3.FromArray(sourceProperty);\r\n break;\r\n case 3: // FresnelParameters\r\n dest[property] = SerializationHelper._FresnelParametersParser(sourceProperty);\r\n break;\r\n case 4: // Vector2\r\n dest[property] = Vector2.FromArray(sourceProperty);\r\n break;\r\n case 5: // Vector3\r\n dest[property] = Vector3.FromArray(sourceProperty);\r\n break;\r\n case 6: // Mesh reference\r\n if (scene) {\r\n dest[property] = scene.getLastMeshById(sourceProperty);\r\n }\r\n break;\r\n case 7: // Color Curves\r\n dest[property] = SerializationHelper._ColorCurvesParser(sourceProperty);\r\n break;\r\n case 8: // Color 4\r\n dest[property] = Color4.FromArray(sourceProperty);\r\n break;\r\n case 9: // Image Processing\r\n dest[property] = SerializationHelper._ImageProcessingConfigurationParser(sourceProperty);\r\n break;\r\n case 10: // Quaternion\r\n dest[property] = Quaternion.FromArray(sourceProperty);\r\n break;\r\n case 11: // Camera reference\r\n if (scene) {\r\n dest[property] = scene.getCameraById(sourceProperty);\r\n }\r\n case 12: // Matrix\r\n dest[property] = Matrix.FromArray(sourceProperty);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return destination;\r\n }\r\n\r\n /**\r\n * Clones an object\r\n * @param creationFunction defines the function used to instanciate the new object\r\n * @param source defines the source object\r\n * @returns the cloned object\r\n */\r\n public static Clone<T>(creationFunction: () => T, source: T): T {\r\n return _copySource(creationFunction, source, false);\r\n }\r\n\r\n /**\r\n * Instanciates a new object based on a source one (some data will be shared between both object)\r\n * @param creationFunction defines the function used to instanciate the new object\r\n * @param source defines the source object\r\n * @returns the new object\r\n */\r\n public static Instanciate<T>(creationFunction: () => T, source: T): T {\r\n return _copySource(creationFunction, source, true);\r\n }\r\n}\r\n\r\n/** @hidden */\r\ndeclare const _native: any;\r\n\r\n/**\r\n * Decorator used to redirect a function to a native implementation if available.\r\n * @hidden\r\n */\r\nexport function nativeOverride<T extends (...params: any) => boolean>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => unknown>, predicate?: T) {\r\n // Cache the original JS function for later.\r\n const jsFunc = descriptor.value!;\r\n\r\n // Override the JS function to check for a native override on first invocation. Setting descriptor.value overrides the function at the early stage of code being loaded/imported.\r\n descriptor.value = (...params: Parameters<T>): unknown => {\r\n // Assume the resolved function will be the original JS function, then we will check for the Babylon Native context.\r\n let func = jsFunc;\r\n\r\n // Check if we are executing in a Babylon Native context (e.g. check the presence of the _native global property) and if so also check if a function override is available.\r\n if (typeof _native !== 'undefined' && _native[propertyKey]) {\r\n const nativeFunc = _native[propertyKey] as (...params: Parameters<T>) => unknown;\r\n // If a predicate was provided, then we'll need to invoke the predicate on each invocation of the underlying function to determine whether to call the native function or the JS function.\r\n if (predicate) {\r\n // The resolved function will execute the predicate and then either execute the native function or the JS function.\r\n func = (...params: Parameters<T>) => predicate(...params) ? nativeFunc(...params) : jsFunc(...params);\r\n } else {\r\n // The resolved function will directly execute the native function.\r\n func = nativeFunc;\r\n }\r\n }\r\n\r\n // Override the JS function again with the final resolved target function.\r\n target[propertyKey] = func;\r\n\r\n // The JS function has now been overridden based on whether we're executing in the context of Babylon Native, but we still need to invoke that function.\r\n // Future invocations of the function will just directly invoke the final overridden function, not any of the decorator setup logic above.\r\n return func(...params);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator factory that applies the nativeOverride decorator, but determines whether to redirect to the native implementation based on a filter function that evaluates the function arguments.\r\n * @example @nativeOverride.filter((...[arg1]: Parameters<typeof someClass.someMethod>) => arg1.length > 20)\r\n * public someMethod(arg1: string, arg2: number): string {\r\n * @hidden\r\n */\r\nnativeOverride.filter = function<T extends (...params: any) => boolean>(predicate: T) {\r\n return (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => unknown>) => nativeOverride(target, propertyKey, descriptor, predicate);\r\n};\r\n"]}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/decorators.ts"],"names":[],"mappings":"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","sourcesContent":["import { Tags } from \"../Misc/tags\";\r\nimport { Nullable } from \"../types\";\r\nimport { Quaternion, Vector2, Vector3, Matrix } from \"../Maths/math.vector\";\r\nimport { _WarnImport } from './devTools';\r\nimport { IAnimatable } from '../Animations/animatable.interface';\r\nimport { Color4, Color3 } from '../Maths/math.color';\r\n\r\ndeclare type Scene = import(\"../scene\").Scene;\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\n\r\ndeclare type ImageProcessingConfiguration = import(\"../Materials/imageProcessingConfiguration\").ImageProcessingConfiguration;\r\ndeclare type FresnelParameters = import(\"../Materials/fresnelParameters\").FresnelParameters;\r\ndeclare type ColorCurves = import(\"../Materials/colorCurves\").ColorCurves;\r\ndeclare type BaseTexture = import(\"../Materials/Textures/baseTexture\").BaseTexture;\r\n\r\nvar __decoratorInitialStore = {};\r\nvar __mergedStore = {};\r\n\r\nvar _copySource = function <T>(creationFunction: () => T, source: T, instanciate: boolean): T {\r\n var destination = creationFunction();\r\n\r\n // Tags\r\n if (Tags) {\r\n Tags.AddTagsTo(destination, (<any>source).tags);\r\n }\r\n\r\n var classStore = getMergedStore(destination);\r\n\r\n // Properties\r\n for (var property in classStore) {\r\n var propertyDescriptor = classStore[property];\r\n var sourceProperty = (<any>source)[property];\r\n var propertyType = propertyDescriptor.type;\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n switch (propertyType) {\r\n case 0: // Value\r\n case 6: // Mesh reference\r\n case 11: // Camera reference\r\n (<any>destination)[property] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n (<any>destination)[property] = (instanciate || sourceProperty.isRenderTarget) ? sourceProperty : sourceProperty.clone();\r\n break;\r\n case 2: // Color3\r\n case 3: // FresnelParameters\r\n case 4: // Vector2\r\n case 5: // Vector3\r\n case 7: // Color Curves\r\n case 10: // Quaternion\r\n case 12: // Matrix\r\n (<any>destination)[property] = instanciate ? sourceProperty : sourceProperty.clone();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return destination;\r\n};\r\n\r\nfunction getDirectStore(target: any): any {\r\n var classKey = target.getClassName();\r\n\r\n if (!(<any>__decoratorInitialStore)[classKey]) {\r\n (<any>__decoratorInitialStore)[classKey] = {};\r\n }\r\n\r\n return (<any>__decoratorInitialStore)[classKey];\r\n}\r\n\r\n/**\r\n * Return the list of properties flagged as serializable\r\n * @param target: host object\r\n */\r\nfunction getMergedStore(target: any): any {\r\n let classKey = target.getClassName();\r\n\r\n if ((<any>__mergedStore)[classKey]) {\r\n return (<any>__mergedStore)[classKey];\r\n }\r\n\r\n (<any>__mergedStore)[classKey] = {};\r\n\r\n let store = (<any>__mergedStore)[classKey];\r\n let currentTarget = target;\r\n let currentKey = classKey;\r\n while (currentKey) {\r\n let initialStore = (<any>__decoratorInitialStore)[currentKey];\r\n for (var property in initialStore) {\r\n store[property] = initialStore[property];\r\n }\r\n\r\n let parent: any;\r\n let done = false;\r\n\r\n do {\r\n parent = Object.getPrototypeOf(currentTarget);\r\n if (!parent.getClassName) {\r\n done = true;\r\n break;\r\n }\r\n\r\n if (parent.getClassName() !== currentKey) {\r\n break;\r\n }\r\n\r\n currentTarget = parent;\r\n }\r\n while (parent);\r\n\r\n if (done) {\r\n break;\r\n }\r\n\r\n currentKey = parent.getClassName();\r\n currentTarget = parent;\r\n }\r\n\r\n return store;\r\n}\r\n\r\nfunction generateSerializableMember(type: number, sourceName?: string) {\r\n return (target: any, propertyKey: string | symbol) => {\r\n var classStore = getDirectStore(target);\r\n\r\n if (!classStore[propertyKey]) {\r\n classStore[propertyKey] = { type: type, sourceName: sourceName };\r\n }\r\n };\r\n}\r\n\r\nfunction generateExpandMember(setCallback: string, targetKey: Nullable<string> = null) {\r\n return (target: any, propertyKey: string) => {\r\n var key = targetKey || (\"_\" + propertyKey);\r\n Object.defineProperty(target, propertyKey, {\r\n get: function (this: any) {\r\n return this[key];\r\n },\r\n set: function (this: any, value) {\r\n if (this[key] === value) {\r\n return;\r\n }\r\n this[key] = value;\r\n\r\n target[setCallback].apply(this);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n };\r\n}\r\n\r\nexport function expandToProperty(callback: string, targetKey: Nullable<string> = null) {\r\n return generateExpandMember(callback, targetKey);\r\n}\r\n\r\nexport function serialize(sourceName?: string) {\r\n return generateSerializableMember(0, sourceName); // value member\r\n}\r\n\r\nexport function serializeAsTexture(sourceName?: string) {\r\n return generateSerializableMember(1, sourceName); // texture member\r\n}\r\n\r\nexport function serializeAsColor3(sourceName?: string) {\r\n return generateSerializableMember(2, sourceName); // color3 member\r\n}\r\n\r\nexport function serializeAsFresnelParameters(sourceName?: string) {\r\n return generateSerializableMember(3, sourceName); // fresnel parameters member\r\n}\r\n\r\nexport function serializeAsVector2(sourceName?: string) {\r\n return generateSerializableMember(4, sourceName); // vector2 member\r\n}\r\n\r\nexport function serializeAsVector3(sourceName?: string) {\r\n return generateSerializableMember(5, sourceName); // vector3 member\r\n}\r\n\r\nexport function serializeAsMeshReference(sourceName?: string) {\r\n return generateSerializableMember(6, sourceName); // mesh reference member\r\n}\r\n\r\nexport function serializeAsColorCurves(sourceName?: string) {\r\n return generateSerializableMember(7, sourceName); // color curves\r\n}\r\n\r\nexport function serializeAsColor4(sourceName?: string) {\r\n return generateSerializableMember(8, sourceName); // color 4\r\n}\r\n\r\nexport function serializeAsImageProcessingConfiguration(sourceName?: string) {\r\n return generateSerializableMember(9, sourceName); // image processing\r\n}\r\n\r\nexport function serializeAsQuaternion(sourceName?: string) {\r\n return generateSerializableMember(10, sourceName); // quaternion member\r\n}\r\n\r\nexport function serializeAsMatrix(sourceName?: string) {\r\n return generateSerializableMember(12, sourceName); // matrix member\r\n}\r\n\r\n/**\r\n * Decorator used to define property that can be serialized as reference to a camera\r\n * @param sourceName defines the name of the property to decorate\r\n */\r\nexport function serializeAsCameraReference(sourceName?: string) {\r\n return generateSerializableMember(11, sourceName); // camera reference member\r\n}\r\n\r\n/**\r\n * Class used to help serialization objects\r\n */\r\nexport class SerializationHelper {\r\n /**\r\n * Gets or sets a boolean to indicate if the UniqueId property should be serialized\r\n */\r\n public static AllowLoadingUniqueId = false;\r\n\r\n /** @hidden */\r\n public static _ImageProcessingConfigurationParser = (sourceProperty: any): ImageProcessingConfiguration => {\r\n throw _WarnImport(\"ImageProcessingConfiguration\");\r\n }\r\n\r\n /** @hidden */\r\n public static _FresnelParametersParser = (sourceProperty: any): FresnelParameters => {\r\n throw _WarnImport(\"FresnelParameters\");\r\n }\r\n\r\n /** @hidden */\r\n public static _ColorCurvesParser = (sourceProperty: any): ColorCurves => {\r\n throw _WarnImport(\"ColorCurves\");\r\n }\r\n\r\n /** @hidden */\r\n public static _TextureParser = (sourceProperty: any, scene: Scene, rootUrl: string): Nullable<BaseTexture> => {\r\n throw _WarnImport(\"Texture\");\r\n }\r\n\r\n /**\r\n * Appends the serialized animations from the source animations\r\n * @param source Source containing the animations\r\n * @param destination Target to store the animations\r\n */\r\n public static AppendSerializedAnimations(source: IAnimatable, destination: any): void {\r\n if (source.animations) {\r\n destination.animations = [];\r\n for (var animationIndex = 0; animationIndex < source.animations.length; animationIndex++) {\r\n var animation = source.animations[animationIndex];\r\n\r\n destination.animations.push(animation.serialize());\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Static function used to serialized a specific entity\r\n * @param entity defines the entity to serialize\r\n * @param serializationObject defines the optional target object where serialization data will be stored\r\n * @returns a JSON compatible object representing the serialization of the entity\r\n */\r\n public static Serialize<T>(entity: T, serializationObject?: any): any {\r\n if (!serializationObject) {\r\n serializationObject = {};\r\n }\r\n\r\n // Tags\r\n if (Tags) {\r\n serializationObject.tags = Tags.GetTags(entity);\r\n }\r\n\r\n var serializedProperties = getMergedStore(entity);\r\n\r\n // Properties\r\n for (var property in serializedProperties) {\r\n var propertyDescriptor = serializedProperties[property];\r\n var targetPropertyName = propertyDescriptor.sourceName || property;\r\n var propertyType = propertyDescriptor.type;\r\n var sourceProperty = (<any>entity)[property];\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n switch (propertyType) {\r\n case 0: // Value\r\n serializationObject[targetPropertyName] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 2: // Color3\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 3: // FresnelParameters\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 4: // Vector2\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 5: // Vector3\r\n serializationObject[targetPropertyName] = sourceProperty.asArray();\r\n break;\r\n case 6: // Mesh reference\r\n serializationObject[targetPropertyName] = sourceProperty.id;\r\n break;\r\n case 7: // Color Curves\r\n serializationObject[targetPropertyName] = sourceProperty.serialize();\r\n break;\r\n case 8: // Color 4\r\n serializationObject[targetPropertyName] = (<Color4>sourceProperty).asArray();\r\n break;\r\n case 9: // Image Processing\r\n serializationObject[targetPropertyName] = (<ImageProcessingConfiguration>sourceProperty).serialize();\r\n break;\r\n case 10: // Quaternion\r\n serializationObject[targetPropertyName] = (<Quaternion>sourceProperty).asArray();\r\n break;\r\n case 11: // Camera reference\r\n serializationObject[targetPropertyName] = (<Camera>sourceProperty).id;\r\n break;\r\n case 12: // Matrix\r\n serializationObject[targetPropertyName] = (<Matrix>sourceProperty).asArray();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Creates a new entity from a serialization data object\r\n * @param creationFunction defines a function used to instanciated the new entity\r\n * @param source defines the source serialization data\r\n * @param scene defines the hosting scene\r\n * @param rootUrl defines the root url for resources\r\n * @returns a new entity\r\n */\r\n public static Parse<T>(creationFunction: () => T, source: any, scene: Nullable<Scene>, rootUrl: Nullable<string> = null): T {\r\n var destination = creationFunction();\r\n\r\n if (!rootUrl) {\r\n rootUrl = \"\";\r\n }\r\n\r\n // Tags\r\n if (Tags) {\r\n Tags.AddTagsTo(destination, source.tags);\r\n }\r\n\r\n var classStore = getMergedStore(destination);\r\n\r\n // Properties\r\n for (var property in classStore) {\r\n var propertyDescriptor = classStore[property];\r\n var sourceProperty = source[propertyDescriptor.sourceName || property];\r\n var propertyType = propertyDescriptor.type;\r\n\r\n if (sourceProperty !== undefined && sourceProperty !== null && (property !== \"uniqueId\" || SerializationHelper.AllowLoadingUniqueId)) {\r\n var dest = <any>destination;\r\n switch (propertyType) {\r\n case 0: // Value\r\n dest[property] = sourceProperty;\r\n break;\r\n case 1: // Texture\r\n if (scene) {\r\n dest[property] = SerializationHelper._TextureParser(sourceProperty, scene, rootUrl);\r\n }\r\n break;\r\n case 2: // Color3\r\n dest[property] = Color3.FromArray(sourceProperty);\r\n break;\r\n case 3: // FresnelParameters\r\n dest[property] = SerializationHelper._FresnelParametersParser(sourceProperty);\r\n break;\r\n case 4: // Vector2\r\n dest[property] = Vector2.FromArray(sourceProperty);\r\n break;\r\n case 5: // Vector3\r\n dest[property] = Vector3.FromArray(sourceProperty);\r\n break;\r\n case 6: // Mesh reference\r\n if (scene) {\r\n dest[property] = scene.getLastMeshById(sourceProperty);\r\n }\r\n break;\r\n case 7: // Color Curves\r\n dest[property] = SerializationHelper._ColorCurvesParser(sourceProperty);\r\n break;\r\n case 8: // Color 4\r\n dest[property] = Color4.FromArray(sourceProperty);\r\n break;\r\n case 9: // Image Processing\r\n dest[property] = SerializationHelper._ImageProcessingConfigurationParser(sourceProperty);\r\n break;\r\n case 10: // Quaternion\r\n dest[property] = Quaternion.FromArray(sourceProperty);\r\n break;\r\n case 11: // Camera reference\r\n if (scene) {\r\n dest[property] = scene.getCameraById(sourceProperty);\r\n }\r\n case 12: // Matrix\r\n dest[property] = Matrix.FromArray(sourceProperty);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return destination;\r\n }\r\n\r\n /**\r\n * Clones an object\r\n * @param creationFunction defines the function used to instanciate the new object\r\n * @param source defines the source object\r\n * @returns the cloned object\r\n */\r\n public static Clone<T>(creationFunction: () => T, source: T): T {\r\n return _copySource(creationFunction, source, false);\r\n }\r\n\r\n /**\r\n * Instanciates a new object based on a source one (some data will be shared between both object)\r\n * @param creationFunction defines the function used to instanciate the new object\r\n * @param source defines the source object\r\n * @returns the new object\r\n */\r\n public static Instanciate<T>(creationFunction: () => T, source: T): T {\r\n return _copySource(creationFunction, source, true);\r\n }\r\n}\r\n\r\n/** @hidden */\r\ndeclare const _native: any;\r\n\r\n/**\r\n * Decorator used to redirect a function to a native implementation if available.\r\n * @hidden\r\n */\r\nexport function nativeOverride<T extends (...params: any) => boolean>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => unknown>, predicate?: T) {\r\n // Cache the original JS function for later.\r\n const jsFunc = descriptor.value!;\r\n\r\n // Override the JS function to check for a native override on first invocation. Setting descriptor.value overrides the function at the early stage of code being loaded/imported.\r\n descriptor.value = (...params: Parameters<T>): unknown => {\r\n // Assume the resolved function will be the original JS function, then we will check for the Babylon Native context.\r\n let func = jsFunc;\r\n\r\n // Check if we are executing in a Babylon Native context (e.g. check the presence of the _native global property) and if so also check if a function override is available.\r\n if (typeof _native !== 'undefined' && _native[propertyKey]) {\r\n const nativeFunc = _native[propertyKey] as (...params: Parameters<T>) => unknown;\r\n // If a predicate was provided, then we'll need to invoke the predicate on each invocation of the underlying function to determine whether to call the native function or the JS function.\r\n if (predicate) {\r\n // The resolved function will execute the predicate and then either execute the native function or the JS function.\r\n func = (...params: Parameters<T>) => predicate(...params) ? nativeFunc(...params) : jsFunc(...params);\r\n } else {\r\n // The resolved function will directly execute the native function.\r\n func = nativeFunc;\r\n }\r\n }\r\n\r\n // Override the JS function again with the final resolved target function.\r\n target[propertyKey] = func;\r\n\r\n // The JS function has now been overridden based on whether we're executing in the context of Babylon Native, but we still need to invoke that function.\r\n // Future invocations of the function will just directly invoke the final overridden function, not any of the decorator setup logic above.\r\n return func(...params);\r\n };\r\n}\r\n\r\n/**\r\n * Decorator factory that applies the nativeOverride decorator, but determines whether to redirect to the native implementation based on a filter function that evaluates the function arguments.\r\n * @example @nativeOverride.filter((...[arg1]: Parameters<typeof someClass.someMethod>) => arg1.length > 20)\r\n * public someMethod(arg1: string, arg2: number): string {\r\n * @hidden\r\n */\r\nnativeOverride.filter = function<T extends (...params: any) => boolean>(predicate: T) {\r\n return (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => unknown>) => nativeOverride(target, propertyKey, descriptor, predicate);\r\n};\r\n"]}
@@ -1,5 +1,5 @@
1
- import { StringTools } from './stringTools';
2
- import { Logger } from './logger';
1
+ import { EndsWith } from './stringTools.js';
2
+ import { Logger } from './logger.js';
3
3
  var cloneValue = function (source, destinationObject) {
4
4
  if (!source) {
5
5
  return null;
@@ -46,7 +46,7 @@ var DeepCopier = /** @class */ (function () {
46
46
  if (prop[0] === "_" && (!mustCopyList || mustCopyList.indexOf(prop) === -1)) {
47
47
  continue;
48
48
  }
49
- if (StringTools.EndsWith(prop, "Observable")) {
49
+ if (EndsWith(prop, "Observable")) {
50
50
  continue;
51
51
  }
52
52
  if (doNotCopyList && doNotCopyList.indexOf(prop) !== -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"deepCopier.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/deepCopier.ts"],"names":[],"mappings":"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","sourcesContent":["import { StringTools } from './stringTools';\r\nimport { Logger } from './logger';\r\n\r\nvar cloneValue = (source: any, destinationObject: any) => {\r\n if (!source) {\r\n return null;\r\n }\r\n\r\n if (source.getClassName && source.getClassName() === \"Mesh\") {\r\n return null;\r\n }\r\n\r\n if (source.getClassName && source.getClassName() === \"SubMesh\") {\r\n return source.clone(destinationObject);\r\n } else if (source.clone) {\r\n return source.clone();\r\n }\r\n return null;\r\n};\r\n\r\nfunction getAllPropertyNames(obj: any): string[] {\r\n const props: string[] = [];\r\n\r\n do {\r\n Object.getOwnPropertyNames(obj).forEach(function (prop) {\r\n if (props.indexOf(prop) === -1) {\r\n props.push(prop);\r\n }\r\n });\r\n } while (obj = Object.getPrototypeOf(obj));\r\n\r\n return props;\r\n}\r\n\r\n/**\r\n * Class containing a set of static utilities functions for deep copy.\r\n */\r\nexport class DeepCopier {\r\n /**\r\n * Tries to copy an object by duplicating every property\r\n * @param source defines the source object\r\n * @param destination defines the target object\r\n * @param doNotCopyList defines a list of properties to avoid\r\n * @param mustCopyList defines a list of properties to copy (even if they start with _)\r\n */\r\n public static DeepCopy(source: any, destination: any, doNotCopyList?: string[], mustCopyList?: string[]): void {\r\n const proerties = getAllPropertyNames(source);\r\n for (var prop of proerties) {\r\n\r\n if (prop[0] === \"_\" && (!mustCopyList || mustCopyList.indexOf(prop) === -1)) {\r\n continue;\r\n }\r\n\r\n if (StringTools.EndsWith(prop, \"Observable\")) {\r\n continue;\r\n }\r\n\r\n if (doNotCopyList && doNotCopyList.indexOf(prop) !== -1) {\r\n continue;\r\n }\r\n\r\n var sourceValue = source[prop];\r\n var typeOfSourceValue = typeof sourceValue;\r\n\r\n if (typeOfSourceValue === \"function\") {\r\n continue;\r\n }\r\n\r\n try {\r\n if (typeOfSourceValue === \"object\") {\r\n if (sourceValue instanceof Array) {\r\n destination[prop] = [];\r\n\r\n if (sourceValue.length > 0) {\r\n if (typeof sourceValue[0] == \"object\") {\r\n for (var index = 0; index < sourceValue.length; index++) {\r\n var clonedValue = cloneValue(sourceValue[index], destination);\r\n\r\n if (destination[prop].indexOf(clonedValue) === -1) { // Test if auto inject was not done\r\n destination[prop].push(clonedValue);\r\n }\r\n }\r\n } else {\r\n destination[prop] = sourceValue.slice(0);\r\n }\r\n }\r\n } else {\r\n destination[prop] = cloneValue(sourceValue, destination);\r\n }\r\n } else {\r\n destination[prop] = sourceValue;\r\n }\r\n }\r\n catch (e) {\r\n // Log a warning (it could be because of a read-only property)\r\n Logger.Warn(e.message);\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"deepCopier.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/deepCopier.ts"],"names":[],"mappings":"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","sourcesContent":["import { EndsWith } from './stringTools';\r\nimport { Logger } from './logger';\r\n\r\nconst cloneValue = (source: any, destinationObject: any) => {\r\n if (!source) {\r\n return null;\r\n }\r\n\r\n if (source.getClassName && source.getClassName() === \"Mesh\") {\r\n return null;\r\n }\r\n\r\n if (source.getClassName && source.getClassName() === \"SubMesh\") {\r\n return source.clone(destinationObject);\r\n } else if (source.clone) {\r\n return source.clone();\r\n }\r\n return null;\r\n};\r\n\r\nfunction getAllPropertyNames(obj: any): string[] {\r\n const props: string[] = [];\r\n\r\n do {\r\n Object.getOwnPropertyNames(obj).forEach(function (prop) {\r\n if (props.indexOf(prop) === -1) {\r\n props.push(prop);\r\n }\r\n });\r\n } while (obj = Object.getPrototypeOf(obj));\r\n\r\n return props;\r\n}\r\n\r\n/**\r\n * Class containing a set of static utilities functions for deep copy.\r\n */\r\nexport class DeepCopier {\r\n /**\r\n * Tries to copy an object by duplicating every property\r\n * @param source defines the source object\r\n * @param destination defines the target object\r\n * @param doNotCopyList defines a list of properties to avoid\r\n * @param mustCopyList defines a list of properties to copy (even if they start with _)\r\n */\r\n public static DeepCopy(source: any, destination: any, doNotCopyList?: string[], mustCopyList?: string[]): void {\r\n const proerties = getAllPropertyNames(source);\r\n for (var prop of proerties) {\r\n\r\n if (prop[0] === \"_\" && (!mustCopyList || mustCopyList.indexOf(prop) === -1)) {\r\n continue;\r\n }\r\n\r\n if (EndsWith(prop, \"Observable\")) {\r\n continue;\r\n }\r\n\r\n if (doNotCopyList && doNotCopyList.indexOf(prop) !== -1) {\r\n continue;\r\n }\r\n\r\n var sourceValue = source[prop];\r\n var typeOfSourceValue = typeof sourceValue;\r\n\r\n if (typeOfSourceValue === \"function\") {\r\n continue;\r\n }\r\n\r\n try {\r\n if (typeOfSourceValue === \"object\") {\r\n if (sourceValue instanceof Array) {\r\n destination[prop] = [];\r\n\r\n if (sourceValue.length > 0) {\r\n if (typeof sourceValue[0] == \"object\") {\r\n for (var index = 0; index < sourceValue.length; index++) {\r\n var clonedValue = cloneValue(sourceValue[index], destination);\r\n\r\n if (destination[prop].indexOf(clonedValue) === -1) { // Test if auto inject was not done\r\n destination[prop].push(clonedValue);\r\n }\r\n }\r\n } else {\r\n destination[prop] = sourceValue.slice(0);\r\n }\r\n }\r\n } else {\r\n destination[prop] = cloneValue(sourceValue, destination);\r\n }\r\n } else {\r\n destination[prop] = sourceValue;\r\n }\r\n }\r\n catch (e) {\r\n // Log a warning (it could be because of a read-only property)\r\n Logger.Warn(e.message);\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1,6 +1,6 @@
1
1
  import { __extends } from "tslib";
2
- import { DepthRenderer } from "../Rendering/depthRenderer";
3
- import { MinMaxReducer } from "./minMaxReducer";
2
+ import { DepthRenderer } from "../Rendering/depthRenderer.js";
3
+ import { MinMaxReducer } from "./minMaxReducer.js";
4
4
  /**
5
5
  * This class is a small wrapper around the MinMaxReducer class to compute the min/max values of a depth texture
6
6
  */
@@ -1,4 +1,2 @@
1
1
  /** @hidden */
2
- export declare class _DevTools {
3
- static WarnImport(name: string): string;
4
- }
2
+ export declare function _WarnImport(name: string): string;
package/Misc/devTools.js CHANGED
@@ -1,11 +1,5 @@
1
1
  /** @hidden */
2
- var _DevTools = /** @class */ (function () {
3
- function _DevTools() {
4
- }
5
- _DevTools.WarnImport = function (name) {
6
- return name + " needs to be imported before as it contains a side-effect required by your code.";
7
- };
8
- return _DevTools;
9
- }());
10
- export { _DevTools };
2
+ export function _WarnImport(name) {
3
+ return name + " needs to be imported before as it contains a side-effect required by your code.";
4
+ }
11
5
  //# sourceMappingURL=devTools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devTools.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/devTools.ts"],"names":[],"mappings":"AAAA,cAAc;AACd;IAAA;IAIA,CAAC;IAHiB,oBAAU,GAAxB,UAAyB,IAAY;QACjC,OAAU,IAAI,qFAAkF,CAAC;IACrG,CAAC;IACL,gBAAC;AAAD,CAAC,AAJD,IAIC","sourcesContent":["/** @hidden */\r\nexport class _DevTools {\r\n public static WarnImport(name: string) {\r\n return `${name} needs to be imported before as it contains a side-effect required by your code.`;\r\n }\r\n}"]}
1
+ {"version":3,"file":"devTools.js","sourceRoot":"","sources":["../../../sourceES6/core/Misc/devTools.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,UAAU,WAAW,CAAC,IAAY;IACpC,OAAU,IAAI,qFAAkF,CAAC;AACrG,CAAC","sourcesContent":["/** @hidden */\r\nexport function _WarnImport(name: string) {\r\n return `${name} needs to be imported before as it contains a side-effect required by your code.`;\r\n}"]}