@onerjs/core 8.53.5 → 8.53.6
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.
- package/Animations/animationGroup.d.ts +0 -1
- package/Animations/animationGroup.js +0 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroup.pure.js +2 -0
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +11 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.pure.js +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
- package/AudioV2/abstractAudio/abstractSound.js +7 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
- package/AudioV2/abstractAudio/staticSound.js +17 -1
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
- package/AudioV2/abstractAudio/streamingSound.js +9 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Bones/bone.pure.js +3 -3
- package/Buffers/buffer.pure.js +0 -12
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +239 -203
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
- package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
- package/Cameras/VR/vrExperienceHelper.js +0 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
- package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1559 -1479
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/camera.pure.js +1225 -1178
- package/Cameras/camera.pure.js.map +1 -1
- package/Cameras/flyCamera.pure.js +369 -351
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/followCamera.pure.js +229 -192
- package/Cameras/followCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.js +373 -351
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +502 -457
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +7 -0
- package/Cameras/targetCamera.pure.js +550 -509
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/universalCamera.pure.js +98 -85
- package/Cameras/universalCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +111 -4
- package/Collisions/gpuPicker.js +696 -119
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeShader.pure.js +372 -355
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
- package/Decorators/nodeDecorator.d.ts +11 -1
- package/Decorators/nodeDecorator.js +43 -6
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +15 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +7 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +5 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
- package/Engines/abstractEngine.functions.d.ts +8 -2
- package/Engines/abstractEngine.functions.js +12 -4
- package/Engines/abstractEngine.functions.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +20 -1
- package/Engines/abstractEngine.pure.js +21 -134
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +208 -0
- package/Engines/engine.pure.js +0 -15
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +97 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +0 -13
- package/Engines/thinEngine.pure.js +4 -23
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +27 -0
- package/Engines/thinNativeEngine.pure.js +383 -17
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +9 -0
- package/Engines/webgpuEngine.pure.js +7 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/flowGraph.js +9 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +597 -584
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
- package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +11 -0
- package/FlowGraph/serialization.js +11 -1
- package/FlowGraph/serialization.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +715 -693
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.js +529 -519
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.pure.js +428 -413
- package/Layers/glowLayer.pure.js.map +1 -1
- package/Layers/highlightLayer.pure.js +473 -458
- package/Layers/highlightLayer.pure.js.map +1 -1
- package/Layers/selectionOutlineLayer.pure.js +360 -345
- package/Layers/selectionOutlineLayer.pure.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +6 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.pure.js +61 -39
- package/Lights/areaLight.pure.js.map +1 -1
- package/Lights/directionalLight.pure.js +308 -284
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Lights/hemisphericLight.pure.js +123 -104
- package/Lights/hemisphericLight.pure.js.map +1 -1
- package/Lights/light.d.ts +5 -3
- package/Lights/light.js +869 -827
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.pure.js +185 -174
- package/Lights/pointLight.pure.js.map +1 -1
- package/Lights/rectAreaLight.pure.d.ts +17 -0
- package/Lights/rectAreaLight.pure.js +238 -159
- package/Lights/rectAreaLight.pure.js.map +1 -1
- package/Lights/shadowLight.js +280 -268
- package/Lights/shadowLight.js.map +1 -1
- package/Lights/spotLight.pure.js +460 -427
- package/Lights/spotLight.pure.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
- package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +5 -1
- package/Loading/sceneLoader.js +299 -402
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
- package/Materials/Background/backgroundMaterial.pure.js +949 -794
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
- package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
- package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
- package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
- package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
- package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
- package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
- package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
- package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
- package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
- package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.js +1765 -1737
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
- package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
- package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
- package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
- package/Materials/PBR/pbrMaterial.pure.js +1041 -685
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
- package/Materials/PBR/pbrSheenConfiguration.js +314 -270
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
- package/Materials/Textures/HTML/htmlTexture.js +455 -0
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
- package/Materials/Textures/HTML/index.d.ts +4 -0
- package/Materials/Textures/HTML/index.js +5 -0
- package/Materials/Textures/HTML/index.js.map +1 -0
- package/Materials/Textures/HTML/pure.d.ts +5 -0
- package/Materials/Textures/HTML/pure.js +6 -0
- package/Materials/Textures/HTML/pure.js.map +1 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +880 -825
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +0 -1
- package/Materials/Textures/cubeTexture.js +0 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +368 -333
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +0 -1
- package/Materials/Textures/dynamicTexture.js +0 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +2 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +0 -2
- package/Materials/Textures/htmlElementTexture.js +0 -2
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.pure.js +4 -0
- package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -1
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +0 -1
- package/Materials/Textures/multiRenderTarget.js +0 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.pure.js +2 -0
- package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
- package/Materials/Textures/pure.d.ts +1 -0
- package/Materials/Textures/pure.js +1 -0
- package/Materials/Textures/pure.js.map +1 -1
- package/Materials/Textures/texture.pure.js +961 -923
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/videoTexture.pure.d.ts +3 -0
- package/Materials/Textures/videoTexture.pure.js +450 -401
- package/Materials/Textures/videoTexture.pure.js.map +1 -1
- package/Materials/colorCurves.pure.js +510 -477
- package/Materials/colorCurves.pure.js.map +1 -1
- package/Materials/effect.pure.js +0 -7
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/imageProcessing.js +12 -4
- package/Materials/imageProcessing.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.js +647 -587
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
- package/Materials/material.decalMapConfiguration.pure.js +149 -130
- package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +213 -175
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.pure.js +1815 -1721
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialPluginBase.pure.js +270 -249
- package/Materials/materialPluginBase.pure.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +18 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/materialStencilState.js +211 -200
- package/Materials/materialStencilState.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
- package/Materials/meshDebugPluginMaterial.pure.js +397 -275
- package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +32 -32
- package/Materials/standardMaterial.pure.js +1804 -1394
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.color.pure.js +5 -5
- package/Maths/math.functions.js +38 -30
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.vector.pure.js +25 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
- package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
- package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
- package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
- package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
- package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +560 -538
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +473 -458
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2218 -2207
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.js +30 -15
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.js +1665 -1655
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.pure.js +1400 -1372
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/decorators.d.ts +34 -19
- package/Misc/decorators.functions.d.ts +33 -2
- package/Misc/decorators.functions.js +114 -35
- package/Misc/decorators.functions.js.map +1 -1
- package/Misc/decorators.js +96 -68
- package/Misc/decorators.js.map +1 -1
- package/Misc/decorators.serialization.js +47 -40
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/decorators.serializationUtilities.d.ts +24 -0
- package/Misc/decorators.serializationUtilities.js +20 -0
- package/Misc/decorators.serializationUtilities.js.map +1 -0
- package/Misc/dumpTools.pure.js +43 -33
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/fileTools.pure.js +8 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/observable.pure.js +0 -7
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.d.ts +4 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/symbolMetadataPolyfill.d.ts +11 -0
- package/Misc/symbolMetadataPolyfill.js +22 -0
- package/Misc/symbolMetadataPolyfill.js.map +1 -0
- package/Misc/tools.pure.js +2 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Morph/morphTarget.js +382 -365
- package/Morph/morphTarget.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
- package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
- package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/Node/nodeParticleBlock.js +339 -324
- package/Particles/Node/nodeParticleBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +494 -473
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +0 -1
- package/Particles/gpuParticleSystem.js +0 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -3
- package/Particles/gpuParticleSystem.pure.js +27 -16
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particleSystem.pure.js +57 -2
- package/Particles/particleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -1
- package/Particles/thinParticleSystem.js +0 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +2 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.js +2 -0
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v1/physicsImpostor.pure.js +4 -4
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
- package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
- package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
- package/PostProcesses/blurPostProcess.pure.js +127 -115
- package/PostProcesses/blurPostProcess.pure.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
- package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
- package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
- package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.pure.js +96 -84
- package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
- package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
- package/PostProcesses/filterPostProcess.pure.js +66 -54
- package/PostProcesses/filterPostProcess.pure.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
- package/PostProcesses/grainPostProcess.pure.js +82 -70
- package/PostProcesses/grainPostProcess.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +334 -322
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
- package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
- package/PostProcesses/passPostProcess.pure.js +75 -63
- package/PostProcesses/passPostProcess.pure.js.map +1 -1
- package/PostProcesses/postProcess.pure.js +899 -835
- package/PostProcesses/postProcess.pure.js.map +1 -1
- package/PostProcesses/refractionPostProcess.pure.js +114 -87
- package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +86 -74
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.pure.js +82 -70
- package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
- package/Probes/reflectionProbe.pure.js +238 -224
- package/Probes/reflectionProbe.pure.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
- package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +0 -2
- package/Rendering/prePassRenderer.js +0 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +2 -0
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
- package/Rendering/reflectiveShadowMap.pure.js +151 -130
- package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
- package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
- package/Rendering/thinDepthPeelingRenderer.js +0 -1
- package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +17 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +1 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +39 -3
- package/Shaders/picking.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +2 -2
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +22 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
- package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
- package/XR/features/WebXRLayers.pure.d.ts +8 -0
- package/XR/features/WebXRLayers.pure.js +43 -6
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +2 -2
- package/XR/native/nativeXRRenderTarget.js +2 -2
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRExperienceHelper.js +10 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +90 -0
- package/XR/webXRGraphicsBinding.js +85 -0
- package/XR/webXRGraphicsBinding.js.map +1 -0
- package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
- package/XR/webXRLayerRenderTargetTexture.js +30 -0
- package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +14 -0
- package/XR/webXRManagedOutputCanvas.js +24 -5
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
- package/XR/webXRRenderTargetTextureProvider.js +33 -35
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +11 -0
- package/XR/webXRSessionManager.js +37 -0
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +9 -6
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.js +878 -845
- package/node.js.map +1 -1
- package/package.json +8 -14
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
- package/tslib.es6.js +304 -150
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arcRotateCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/arcRotateCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { type EventState, type Observer } from \"../../Misc/observable\";\r\nimport { type ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { type ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { type PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Plane } from \"../../Maths/math.plane\";\r\nimport { Vector3, Matrix, TmpVectors } from \"../../Maths/math.vector.pure\";\r\nimport { Epsilon } from \"../../Maths/math.constants\";\r\nimport { type IWheelEvent, EventConstants } from \"../../Events/deviceInputEvents\";\r\nimport { Clamp } from \"../../Maths/math.scalar.functions\";\r\nimport { Tools } from \"../../Misc/tools.pure\";\r\n\r\n/**\r\n * Firefox uses a different scheme to report scroll distances to other\r\n * browsers. Rather than use complicated methods to calculate the exact\r\n * multiple we need to apply, let's just cheat and use a constant.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode\r\n * https://stackoverflow.com/questions/20110224/what-is-the-height-of-a-line-in-a-wheel-event-deltamode-dom-delta-line\r\n */\r\nconst FfMultiplier = 40;\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control an arc rotate camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class ArcRotateCameraMouseWheelInput implements ICameraInput<ArcRotateCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: ArcRotateCamera;\r\n\r\n /**\r\n * Gets or Set the mouse wheel precision or how fast is the camera zooming.\r\n */\r\n @serialize()\r\n public wheelPrecision = 3.0;\r\n\r\n /**\r\n * Gets or Set the boolean value that controls whether or not the mouse wheel\r\n * zooms to the location of the mouse pointer or not. The default is false.\r\n */\r\n @serialize()\r\n public zoomToMouseLocation = false;\r\n\r\n /**\r\n * wheelDeltaPercentage will be used instead of wheelPrecision if different from 0.\r\n * It defines the percentage of current camera.radius to use as delta when wheel is used.\r\n */\r\n @serialize()\r\n public wheelDeltaPercentage = 0;\r\n\r\n /**\r\n * If set, this function will be used to set the radius delta that will be added to the current camera radius\r\n */\r\n public customComputeDeltaFromMouseWheel: Nullable<(wheelDelta: number, input: ArcRotateCameraMouseWheelInput, event: IWheelEvent) => number> = null;\r\n\r\n private _wheel: Nullable<(p: PointerInfo, s: EventState) => void>;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _hitPlane: Nullable<Plane>;\r\n private _viewOffset: Vector3 = new Vector3(0, 0, 0);\r\n private _globalOffset: Vector3 = new Vector3(0, 0, 0);\r\n\r\n protected _computeDeltaFromMouseWheelLegacyEvent(mouseWheelDelta: number, radius: number) {\r\n let delta: number;\r\n const wheelDelta = mouseWheelDelta * 0.01 * this.wheelDeltaPercentage * radius;\r\n if (mouseWheelDelta > 0) {\r\n delta = wheelDelta / (1.0 + this.wheelDeltaPercentage);\r\n } else {\r\n delta = wheelDelta * (1.0 + this.wheelDeltaPercentage);\r\n }\r\n return delta;\r\n }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n this._wheel = (p) => {\r\n //sanity check - this should be a PointerWheel event.\r\n if (p.type !== PointerEventTypes.POINTERWHEEL) {\r\n return;\r\n }\r\n const event = <IWheelEvent>p.event;\r\n let delta: number;\r\n const platformScale = event.deltaMode === EventConstants.DOM_DELTA_LINE ? FfMultiplier : 1; // If this happens to be set to DOM_DELTA_LINE, adjust accordingly\r\n\r\n const wheelDelta = -(event.deltaY * platformScale);\r\n\r\n if (this.customComputeDeltaFromMouseWheel) {\r\n delta = this.customComputeDeltaFromMouseWheel(wheelDelta, this, event);\r\n } else {\r\n if (this.wheelDeltaPercentage) {\r\n delta = this._computeDeltaFromMouseWheelLegacyEvent(wheelDelta, this.camera.radius);\r\n\r\n // If zooming in, estimate the target radius and use that to compute the delta for inertia\r\n // this will stop multiple scroll events zooming in from adding too much inertia\r\n if (delta > 0) {\r\n // When zoomToMouseLocation is active, the accumulating state lives in our private\r\n // `_zoomToMouseRadiusOffset` field. Otherwise fall back to the legacy surface.\r\n const currentAccumulated = this.zoomToMouseLocation ? this._zoomToMouseRadiusOffset : this.camera.inertialRadiusOffset;\r\n let estimatedTargetRadius = this.camera.radius;\r\n let targetInertia = currentAccumulated + delta;\r\n for (let i = 0; i < 20; i++) {\r\n // 20 iterations should be enough to converge\r\n if (estimatedTargetRadius <= targetInertia) {\r\n // We do not want a negative radius, so we break out of the loop\r\n break;\r\n }\r\n if (Math.abs(targetInertia * this.camera.inertia) < 0.001) {\r\n // We do not want to go below a certain threshold, so we break out of the loop\r\n break;\r\n }\r\n estimatedTargetRadius -= targetInertia;\r\n targetInertia *= this.camera.inertia;\r\n }\r\n estimatedTargetRadius = Clamp(estimatedTargetRadius, 0, Number.MAX_VALUE);\r\n delta = this._computeDeltaFromMouseWheelLegacyEvent(wheelDelta, estimatedTargetRadius);\r\n }\r\n } else {\r\n // The inputMap entry's `sensitivity` takes precedence so consumers can tune\r\n // wheel zoom feel declaratively; fall back to the legacy `wheelPrecision`.\r\n const wheelEntry = this.camera.movement.input.getEntry(\"wheel\", \"zoom\");\r\n const wheelScale = wheelEntry?.sensitivity ?? 1 / (this.wheelPrecision * 40);\r\n delta = wheelDelta * wheelScale;\r\n }\r\n }\r\n\r\n if (delta) {\r\n if (this.zoomToMouseLocation) {\r\n // If we are zooming to the mouse location, then we need to get the hit plane at the start of the zoom gesture if it doesn't exist\r\n // The hit plane is normally calculated after the first motion and each time there's motion so if we don't do this first,\r\n // the first zoom will be to the center of the screen\r\n if (!this._hitPlane) {\r\n this._updateHitPlane();\r\n }\r\n\r\n this._zoomToMouse(delta);\r\n } else {\r\n this.camera.movement.zoomAccumulatedPixels += delta;\r\n }\r\n }\r\n if (event.preventDefault) {\r\n if (!noPreventDefault) {\r\n event.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, PointerEventTypes.POINTERWHEEL);\r\n\r\n if (this.zoomToMouseLocation) {\r\n this._inertialPanning.setAll(0);\r\n }\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void {\r\n if (this._observer) {\r\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\r\n this._observer = null;\r\n this._wheel = null;\r\n }\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs(): void {\r\n if (!this.zoomToMouseLocation) {\r\n return;\r\n }\r\n\r\n const camera = this.camera;\r\n // Motion check based on our private accumulator state + the legacy inertialRadiusOffset\r\n // surface (so user code that still writes to it continues to animate). Legacy also\r\n // included alpha/beta offsets in the motion check — keep that for compatibility so\r\n // the hit plane stays updated while the camera rotates.\r\n const motion =\r\n Math.abs(this._zoomToMouseRadiusOffset) +\r\n this._inertialPanning.lengthSquared() +\r\n Math.abs(camera.inertialAlphaOffset) +\r\n Math.abs(camera.inertialBetaOffset) +\r\n Math.abs(camera.inertialRadiusOffset);\r\n if (motion) {\r\n // if zooming is still happening as a result of inertia, then we also need to update\r\n // the hit plane.\r\n this._updateHitPlane();\r\n\r\n // Apply this frame's coupled radius + pan delta to the camera. They must stay\r\n // in lockstep so the cursor remains at the zoom focal point — keep pan here instead\r\n // of routing through `arcRotateCamera.inertialPanning` which uses a different\r\n // `panningInertia`.\r\n camera.target.addInPlace(this._inertialPanning);\r\n camera.radius -= this._zoomToMouseRadiusOffset;\r\n\r\n // Framerate-independent decay — matches legacy `* camera.inertia` exactly at 60fps\r\n // and preserves glide duration at any other fps.\r\n const decay = camera.movement.getFrameIndependentDecay(camera.inertia);\r\n this._inertialPanning.scaleInPlace(decay);\r\n this._zoomToMouseRadiusOffset *= decay;\r\n\r\n this._zeroIfClose(this._inertialPanning);\r\n if (Math.abs(this._zoomToMouseRadiusOffset) < Epsilon) {\r\n this._zoomToMouseRadiusOffset = 0;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"ArcRotateCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"mousewheel\";\r\n }\r\n\r\n private _updateHitPlane() {\r\n const camera = this.camera;\r\n const direction = camera.target.subtract(camera.position);\r\n this._hitPlane = Plane.FromPositionAndNormal(camera.target, direction);\r\n }\r\n\r\n // Get position on the hit plane\r\n private _getPosition(): Vector3 {\r\n const camera = this.camera;\r\n const scene = camera.getScene();\r\n\r\n // since the _hitPlane is always updated to be orthogonal to the camera position vector\r\n // we don't have to worry about this ray shooting off to infinity. This ray creates\r\n // a vector defining where we want to zoom to.\r\n const ray = scene.createPickingRay(scene.pointerX, scene.pointerY, Matrix.Identity(), camera, false);\r\n // Since the camera is the origin of the picking ray, we need to offset it by the camera's offset manually\r\n // Because the offset is in view space, we need to convert it to world space first\r\n if (camera.targetScreenOffset.x !== 0 || camera.targetScreenOffset.y !== 0) {\r\n this._viewOffset.set(camera.targetScreenOffset.x, camera.targetScreenOffset.y, 0);\r\n camera.getViewMatrix().invertToRef(camera._cameraTransformMatrix);\r\n this._globalOffset = Vector3.TransformNormal(this._viewOffset, camera._cameraTransformMatrix);\r\n ray.origin.addInPlace(this._globalOffset);\r\n }\r\n\r\n let distance = 0;\r\n if (this._hitPlane) {\r\n distance = ray.intersectsPlane(this._hitPlane) ?? 0;\r\n }\r\n\r\n // not using this ray again, so modifying its vectors here is fine\r\n return ray.origin.addInPlace(ray.direction.scaleInPlace(distance));\r\n }\r\n\r\n private _inertialPanning: Vector3 = Vector3.Zero();\r\n\r\n /**\r\n * Decaying accumulator for radius motion in the `zoomToMouseLocation` path.\r\n *\r\n * Units: world-space radius units. On each frame, this value is *subtracted* from\r\n * `camera.radius` and then multiplied by a framerate-independent decay factor (via\r\n * `CameraMovement.getFrameIndependentDecay`). New input from `_zoomToMouse(delta)`\r\n * is added on top each frame, scaled by the matching framerate-independent input\r\n * factor so the steady-state and total-glide-distance match legacy at 60fps at any\r\n * actual refresh rate.\r\n *\r\n * Replaces the use of the legacy `camera.inertialRadiusOffset` for this code path\r\n * so the coupled radius + pan motion can be decayed with framerate-independent\r\n * semantics without disturbing the public `inertialRadiusOffset` back-compat surface.\r\n */\r\n private _zoomToMouseRadiusOffset: number = 0;\r\n\r\n private _zoomToMouse(delta: number) {\r\n const camera = this.camera;\r\n const inertiaComp = 1 - camera.inertia;\r\n // inputScale corrects per-frame input so that the decayed sum matches the legacy 60fps total\r\n // at any actual framerate. At 60fps inputScale = 1 (no-op).\r\n const inputScale = camera.movement.getFrameIndependentInputScale(camera.inertia);\r\n if (camera.lowerRadiusLimit) {\r\n const lowerLimit = camera.lowerRadiusLimit ?? 0;\r\n if (camera.radius - (this._zoomToMouseRadiusOffset + delta * inputScale) / inertiaComp < lowerLimit) {\r\n delta = ((camera.radius - lowerLimit) * inertiaComp - this._zoomToMouseRadiusOffset) / inputScale;\r\n }\r\n }\r\n if (camera.upperRadiusLimit) {\r\n const upperLimit = camera.upperRadiusLimit ?? 0;\r\n if (camera.radius - (this._zoomToMouseRadiusOffset + delta * inputScale) / inertiaComp > upperLimit) {\r\n delta = ((camera.radius - upperLimit) * inertiaComp - this._zoomToMouseRadiusOffset) / inputScale;\r\n }\r\n }\r\n\r\n const zoomDistance = delta / inertiaComp;\r\n const ratio = zoomDistance / camera.radius;\r\n const vec = this._getPosition();\r\n\r\n // Now this vector tells us how much we also need to pan the camera\r\n // so the targeted mouse location becomes the center of zooming.\r\n\r\n const directionToZoomLocation = TmpVectors.Vector3[6];\r\n vec.subtractToRef(camera.target, directionToZoomLocation);\r\n directionToZoomLocation.scaleInPlace(ratio);\r\n directionToZoomLocation.scaleInPlace(inertiaComp);\r\n\r\n directionToZoomLocation.scaleInPlace(inputScale);\r\n this._inertialPanning.addInPlace(directionToZoomLocation);\r\n\r\n this._zoomToMouseRadiusOffset += delta * inputScale;\r\n }\r\n\r\n // Sets x y or z of passed in vector to zero if less than Epsilon.\r\n private _zeroIfClose(vec: Vector3) {\r\n if (Math.abs(vec.x) < Epsilon) {\r\n vec.x = 0;\r\n }\r\n if (Math.abs(vec.y) < Epsilon) {\r\n vec.y = 0;\r\n }\r\n if (Math.abs(vec.z) < Epsilon) {\r\n vec.z = 0;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"ArcRotateCameraMouseWheelInput\"] = ArcRotateCameraMouseWheelInput;\r\n"]}
|
|
1
|
+
{"version":3,"file":"arcRotateCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/arcRotateCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { type EventState, type Observer } from \"../../Misc/observable\";\r\nimport { type ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { type ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { type PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Plane } from \"../../Maths/math.plane\";\r\nimport { Vector3, Matrix, TmpVectors } from \"../../Maths/math.vector.pure\";\r\nimport { Epsilon } from \"../../Maths/math.constants\";\r\nimport { type IWheelEvent, EventConstants } from \"../../Events/deviceInputEvents\";\r\nimport { Clamp } from \"../../Maths/math.scalar.functions\";\r\nimport { Tools } from \"../../Misc/tools.pure\";\r\n\r\n/**\r\n * Firefox uses a different scheme to report scroll distances to other\r\n * browsers. Rather than use complicated methods to calculate the exact\r\n * multiple we need to apply, let's just cheat and use a constant.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent/deltaMode\r\n * https://stackoverflow.com/questions/20110224/what-is-the-height-of-a-line-in-a-wheel-event-deltamode-dom-delta-line\r\n */\r\nconst FfMultiplier = 40;\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control an arc rotate camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class ArcRotateCameraMouseWheelInput implements ICameraInput<ArcRotateCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: ArcRotateCamera;\r\n\r\n /**\r\n * Gets or Set the mouse wheel precision or how fast is the camera zooming.\r\n */\r\n @serialize()\r\n public wheelPrecision = 3.0;\r\n\r\n /**\r\n * Gets or Set the boolean value that controls whether or not the mouse wheel\r\n * zooms to the location of the mouse pointer or not. The default is false.\r\n */\r\n @serialize()\r\n public zoomToMouseLocation = false;\r\n\r\n /**\r\n * wheelDeltaPercentage will be used instead of wheelPrecision if different from 0.\r\n * It defines the percentage of current camera.radius to use as delta when wheel is used.\r\n */\r\n @serialize()\r\n public wheelDeltaPercentage = 0;\r\n\r\n /**\r\n * If set, this function will be used to set the radius delta that will be added to the current camera radius\r\n */\r\n public customComputeDeltaFromMouseWheel: Nullable<(wheelDelta: number, input: ArcRotateCameraMouseWheelInput, event: IWheelEvent) => number> = null;\r\n\r\n private _wheel: Nullable<(p: PointerInfo, s: EventState) => void>;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _hitPlane: Nullable<Plane>;\r\n private _viewOffset: Vector3 = new Vector3(0, 0, 0);\r\n private _globalOffset: Vector3 = new Vector3(0, 0, 0);\r\n\r\n protected _computeDeltaFromMouseWheelLegacyEvent(mouseWheelDelta: number, radius: number) {\r\n let delta: number;\r\n const wheelDelta = mouseWheelDelta * 0.01 * this.wheelDeltaPercentage * radius;\r\n if (mouseWheelDelta > 0) {\r\n delta = wheelDelta / (1.0 + this.wheelDeltaPercentage);\r\n } else {\r\n delta = wheelDelta * (1.0 + this.wheelDeltaPercentage);\r\n }\r\n return delta;\r\n }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n this._wheel = (p) => {\r\n //sanity check - this should be a PointerWheel event.\r\n if (p.type !== PointerEventTypes.POINTERWHEEL) {\r\n return;\r\n }\r\n const event = <IWheelEvent>p.event;\r\n let delta: number;\r\n const platformScale = event.deltaMode === EventConstants.DOM_DELTA_LINE ? FfMultiplier : 1; // If this happens to be set to DOM_DELTA_LINE, adjust accordingly\r\n\r\n const wheelDelta = -(event.deltaY * platformScale);\r\n\r\n if (this.customComputeDeltaFromMouseWheel) {\r\n delta = this.customComputeDeltaFromMouseWheel(wheelDelta, this, event);\r\n } else {\r\n if (this.wheelDeltaPercentage) {\r\n delta = this._computeDeltaFromMouseWheelLegacyEvent(wheelDelta, this.camera.radius);\r\n\r\n // If zooming in, estimate the target radius and use that to compute the delta for inertia\r\n // this will stop multiple scroll events zooming in from adding too much inertia\r\n if (delta > 0) {\r\n // When zoomToMouseLocation is active, the accumulating state lives in our private\r\n // `_zoomToMouseRadiusOffset` field. Otherwise fall back to the legacy surface.\r\n const currentAccumulated = this.zoomToMouseLocation ? this._zoomToMouseRadiusOffset : this.camera.inertialRadiusOffset;\r\n let estimatedTargetRadius = this.camera.radius;\r\n let targetInertia = currentAccumulated + delta;\r\n for (let i = 0; i < 20; i++) {\r\n // 20 iterations should be enough to converge\r\n if (estimatedTargetRadius <= targetInertia) {\r\n // We do not want a negative radius, so we break out of the loop\r\n break;\r\n }\r\n if (Math.abs(targetInertia * this.camera.inertia) < 0.001) {\r\n // We do not want to go below a certain threshold, so we break out of the loop\r\n break;\r\n }\r\n estimatedTargetRadius -= targetInertia;\r\n targetInertia *= this.camera.inertia;\r\n }\r\n estimatedTargetRadius = Clamp(estimatedTargetRadius, 0, Number.MAX_VALUE);\r\n delta = this._computeDeltaFromMouseWheelLegacyEvent(wheelDelta, estimatedTargetRadius);\r\n }\r\n } else {\r\n // The inputMap entry's `sensitivity` takes precedence so consumers can tune\r\n // wheel zoom feel declaratively; fall back to the legacy `wheelPrecision`.\r\n const wheelEntry = this.camera.movement.input.getEntry(\"wheel\", \"zoom\");\r\n const wheelScale = wheelEntry?.sensitivity ?? 1 / (this.wheelPrecision * 40);\r\n delta = wheelDelta * wheelScale;\r\n }\r\n }\r\n\r\n if (delta) {\r\n if (this.zoomToMouseLocation) {\r\n // If we are zooming to the mouse location, then we need to get the hit plane at the start of the zoom gesture if it doesn't exist\r\n // The hit plane is normally calculated after the first motion and each time there's motion so if we don't do this first,\r\n // the first zoom will be to the center of the screen\r\n if (!this._hitPlane) {\r\n this._updateHitPlane();\r\n }\r\n\r\n this._zoomToMouse(delta);\r\n } else {\r\n this.camera.movement.zoomAccumulatedPixels += delta;\r\n }\r\n }\r\n if (event.preventDefault) {\r\n if (!noPreventDefault) {\r\n event.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n this._observer = this.camera.getScene()._inputManager._addCameraPointerObserver(this._wheel, PointerEventTypes.POINTERWHEEL);\r\n\r\n if (this.zoomToMouseLocation) {\r\n this._inertialPanning.setAll(0);\r\n }\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void {\r\n if (this._observer) {\r\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\r\n this._observer = null;\r\n this._wheel = null;\r\n }\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs(): void {\r\n if (!this.zoomToMouseLocation) {\r\n return;\r\n }\r\n\r\n const camera = this.camera;\r\n // Motion check based on our private accumulator state + the legacy inertialRadiusOffset\r\n // surface (so user code that still writes to it continues to animate). Legacy also\r\n // included alpha/beta offsets in the motion check — keep that for compatibility so\r\n // the hit plane stays updated while the camera rotates.\r\n const motion =\r\n Math.abs(this._zoomToMouseRadiusOffset) +\r\n this._inertialPanning.lengthSquared() +\r\n Math.abs(camera.inertialAlphaOffset) +\r\n Math.abs(camera.inertialBetaOffset) +\r\n Math.abs(camera.inertialRadiusOffset);\r\n if (motion) {\r\n // if zooming is still happening as a result of inertia, then we also need to update\r\n // the hit plane.\r\n this._updateHitPlane();\r\n\r\n // Apply this frame's coupled radius + pan delta to the camera. They must stay\r\n // in lockstep so the cursor remains at the zoom focal point — keep pan here instead\r\n // of routing through `arcRotateCamera.inertialPanning` which uses a different\r\n // `panningInertia`.\r\n camera.target.addInPlace(this._inertialPanning);\r\n camera.radius -= this._zoomToMouseRadiusOffset;\r\n\r\n // Framerate-independent decay — matches legacy `* camera.inertia` exactly at 60fps\r\n // and preserves glide duration at any other fps.\r\n const decay = camera.movement.getFrameIndependentDecay(camera.inertia);\r\n this._inertialPanning.scaleInPlace(decay);\r\n this._zoomToMouseRadiusOffset *= decay;\r\n\r\n this._zeroIfClose(this._inertialPanning);\r\n if (Math.abs(this._zoomToMouseRadiusOffset) < Epsilon) {\r\n this._zoomToMouseRadiusOffset = 0;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"ArcRotateCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"mousewheel\";\r\n }\r\n\r\n private _updateHitPlane() {\r\n const camera = this.camera;\r\n const direction = camera.target.subtract(camera.position);\r\n this._hitPlane = Plane.FromPositionAndNormal(camera.target, direction);\r\n }\r\n\r\n // Get position on the hit plane\r\n private _getPosition(): Vector3 {\r\n const camera = this.camera;\r\n const scene = camera.getScene();\r\n\r\n // since the _hitPlane is always updated to be orthogonal to the camera position vector\r\n // we don't have to worry about this ray shooting off to infinity. This ray creates\r\n // a vector defining where we want to zoom to.\r\n const ray = scene.createPickingRay(scene.pointerX, scene.pointerY, Matrix.Identity(), camera, false);\r\n // Since the camera is the origin of the picking ray, we need to offset it by the camera's offset manually\r\n // Because the offset is in view space, we need to convert it to world space first\r\n if (camera.targetScreenOffset.x !== 0 || camera.targetScreenOffset.y !== 0) {\r\n this._viewOffset.set(camera.targetScreenOffset.x, camera.targetScreenOffset.y, 0);\r\n camera.getViewMatrix().invertToRef(camera._cameraTransformMatrix);\r\n this._globalOffset = Vector3.TransformNormal(this._viewOffset, camera._cameraTransformMatrix);\r\n ray.origin.addInPlace(this._globalOffset);\r\n }\r\n\r\n let distance = 0;\r\n if (this._hitPlane) {\r\n distance = ray.intersectsPlane(this._hitPlane) ?? 0;\r\n }\r\n\r\n // not using this ray again, so modifying its vectors here is fine\r\n return ray.origin.addInPlace(ray.direction.scaleInPlace(distance));\r\n }\r\n\r\n private _inertialPanning: Vector3 = Vector3.Zero();\r\n\r\n /**\r\n * Decaying accumulator for radius motion in the `zoomToMouseLocation` path.\r\n *\r\n * Units: world-space radius units. On each frame, this value is *subtracted* from\r\n * `camera.radius` and then multiplied by a framerate-independent decay factor (via\r\n * `CameraMovement.getFrameIndependentDecay`). New input from `_zoomToMouse(delta)`\r\n * is added on top each frame, scaled by the matching framerate-independent input\r\n * factor so the steady-state and total-glide-distance match legacy at 60fps at any\r\n * actual refresh rate.\r\n *\r\n * Replaces the use of the legacy `camera.inertialRadiusOffset` for this code path\r\n * so the coupled radius + pan motion can be decayed with framerate-independent\r\n * semantics without disturbing the public `inertialRadiusOffset` back-compat surface.\r\n */\r\n private _zoomToMouseRadiusOffset: number = 0;\r\n\r\n private _zoomToMouse(delta: number) {\r\n const camera = this.camera;\r\n const inertiaComp = 1 - camera.inertia;\r\n // inputScale corrects per-frame input so that the decayed sum matches the legacy 60fps total\r\n // at any actual framerate. At 60fps inputScale = 1 (no-op).\r\n const inputScale = camera.movement.getFrameIndependentInputScale(camera.inertia);\r\n if (camera.lowerRadiusLimit) {\r\n const lowerLimit = camera.lowerRadiusLimit ?? 0;\r\n if (camera.radius - (this._zoomToMouseRadiusOffset + delta * inputScale) / inertiaComp < lowerLimit) {\r\n delta = ((camera.radius - lowerLimit) * inertiaComp - this._zoomToMouseRadiusOffset) / inputScale;\r\n }\r\n }\r\n if (camera.upperRadiusLimit) {\r\n const upperLimit = camera.upperRadiusLimit ?? 0;\r\n if (camera.radius - (this._zoomToMouseRadiusOffset + delta * inputScale) / inertiaComp > upperLimit) {\r\n delta = ((camera.radius - upperLimit) * inertiaComp - this._zoomToMouseRadiusOffset) / inputScale;\r\n }\r\n }\r\n\r\n const zoomDistance = delta / inertiaComp;\r\n const ratio = zoomDistance / camera.radius;\r\n const vec = this._getPosition();\r\n\r\n // Now this vector tells us how much we also need to pan the camera\r\n // so the targeted mouse location becomes the center of zooming.\r\n\r\n const directionToZoomLocation = TmpVectors.Vector3[6];\r\n vec.subtractToRef(camera.target, directionToZoomLocation);\r\n directionToZoomLocation.scaleInPlace(ratio);\r\n directionToZoomLocation.scaleInPlace(inertiaComp);\r\n\r\n directionToZoomLocation.scaleInPlace(inputScale);\r\n this._inertialPanning.addInPlace(directionToZoomLocation);\r\n\r\n this._zoomToMouseRadiusOffset += delta * inputScale;\r\n }\r\n\r\n // Sets x y or z of passed in vector to zero if less than Epsilon.\r\n private _zeroIfClose(vec: Vector3) {\r\n if (Math.abs(vec.x) < Epsilon) {\r\n vec.x = 0;\r\n }\r\n if (Math.abs(vec.y) < Epsilon) {\r\n vec.y = 0;\r\n }\r\n if (Math.abs(vec.z) < Epsilon) {\r\n vec.z = 0;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"ArcRotateCameraMouseWheelInput\"] = ArcRotateCameraMouseWheelInput;\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __esDecorate, __runInitializers } from "../../tslib.es6.js";
|
|
2
2
|
import { serialize } from "../../Misc/decorators.js";
|
|
3
3
|
import { CameraInputTypes } from "../../Cameras/cameraInputsManager.js";
|
|
4
4
|
import { OrbitCameraPointersInput } from "../../Cameras/Inputs/orbitCameraPointersInput.js";
|
|
@@ -7,222 +7,246 @@ import { OrbitCameraPointersInput } from "../../Cameras/Inputs/orbitCameraPointe
|
|
|
7
7
|
* Uses the inputMap on the movement class to determine which button maps to which interaction.
|
|
8
8
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
this.
|
|
90
|
-
this.camera.movement.panAccumulatedPixels.x += -moveDeltaX * panScale;
|
|
91
|
-
this.camera.movement.panAccumulatedPixels.y += moveDeltaY * panScale;
|
|
10
|
+
let ArcRotateCameraPointersInput = (() => {
|
|
11
|
+
var _a;
|
|
12
|
+
let _classSuper = OrbitCameraPointersInput;
|
|
13
|
+
let _buttons_decorators;
|
|
14
|
+
let _buttons_initializers = [];
|
|
15
|
+
let _buttons_extraInitializers = [];
|
|
16
|
+
let _angularSensibilityX_decorators;
|
|
17
|
+
let _angularSensibilityX_initializers = [];
|
|
18
|
+
let _angularSensibilityX_extraInitializers = [];
|
|
19
|
+
let _angularSensibilityY_decorators;
|
|
20
|
+
let _angularSensibilityY_initializers = [];
|
|
21
|
+
let _angularSensibilityY_extraInitializers = [];
|
|
22
|
+
let _pinchPrecision_decorators;
|
|
23
|
+
let _pinchPrecision_initializers = [];
|
|
24
|
+
let _pinchPrecision_extraInitializers = [];
|
|
25
|
+
let _pinchDeltaPercentage_decorators;
|
|
26
|
+
let _pinchDeltaPercentage_initializers = [];
|
|
27
|
+
let _pinchDeltaPercentage_extraInitializers = [];
|
|
28
|
+
let _useNaturalPinchZoom_decorators;
|
|
29
|
+
let _useNaturalPinchZoom_initializers = [];
|
|
30
|
+
let _useNaturalPinchZoom_extraInitializers = [];
|
|
31
|
+
let _panningSensibility_decorators;
|
|
32
|
+
let _panningSensibility_initializers = [];
|
|
33
|
+
let _panningSensibility_extraInitializers = [];
|
|
34
|
+
return _a = class ArcRotateCameraPointersInput extends _classSuper {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(...arguments);
|
|
37
|
+
/**
|
|
38
|
+
* Defines the buttons associated with the input to handle camera move.
|
|
39
|
+
*/
|
|
40
|
+
this.buttons = __runInitializers(this, _buttons_initializers, [0, 1, 2]);
|
|
41
|
+
/**
|
|
42
|
+
* Defines the pointer angular sensibility along the X axis or how fast is
|
|
43
|
+
* the camera rotating.
|
|
44
|
+
*/
|
|
45
|
+
this.angularSensibilityX = (__runInitializers(this, _buttons_extraInitializers), __runInitializers(this, _angularSensibilityX_initializers, 1000.0));
|
|
46
|
+
/**
|
|
47
|
+
* Defines the pointer angular sensibility along the Y axis or how fast is
|
|
48
|
+
* the camera rotating.
|
|
49
|
+
*/
|
|
50
|
+
this.angularSensibilityY = (__runInitializers(this, _angularSensibilityX_extraInitializers), __runInitializers(this, _angularSensibilityY_initializers, 1000.0));
|
|
51
|
+
/**
|
|
52
|
+
* Defines the pointer pinch precision or how fast is the camera zooming.
|
|
53
|
+
*/
|
|
54
|
+
this.pinchPrecision = (__runInitializers(this, _angularSensibilityY_extraInitializers), __runInitializers(this, _pinchPrecision_initializers, 12.0));
|
|
55
|
+
/**
|
|
56
|
+
* pinchDeltaPercentage will be used instead of pinchPrecision if different
|
|
57
|
+
* from 0.
|
|
58
|
+
* It defines the percentage of current camera.radius to use as delta when
|
|
59
|
+
* pinch zoom is used.
|
|
60
|
+
*/
|
|
61
|
+
this.pinchDeltaPercentage = (__runInitializers(this, _pinchPrecision_extraInitializers), __runInitializers(this, _pinchDeltaPercentage_initializers, 0));
|
|
62
|
+
/**
|
|
63
|
+
* When useNaturalPinchZoom is true, multi touch zoom will zoom in such
|
|
64
|
+
* that any object in the plane at the camera's target point will scale
|
|
65
|
+
* perfectly with finger motion.
|
|
66
|
+
* Overrides pinchDeltaPercentage and pinchPrecision.
|
|
67
|
+
*/
|
|
68
|
+
this.useNaturalPinchZoom = (__runInitializers(this, _pinchDeltaPercentage_extraInitializers), __runInitializers(this, _useNaturalPinchZoom_initializers, false));
|
|
69
|
+
/**
|
|
70
|
+
* Defines the pointer panning sensibility or how fast is the camera moving.
|
|
71
|
+
*/
|
|
72
|
+
this.panningSensibility = (__runInitializers(this, _useNaturalPinchZoom_extraInitializers), __runInitializers(this, _panningSensibility_initializers, 1000.0));
|
|
73
|
+
/**
|
|
74
|
+
* Revers pinch action direction.
|
|
75
|
+
*/
|
|
76
|
+
this.pinchInwards = (__runInitializers(this, _panningSensibility_extraInitializers), true);
|
|
77
|
+
/** Cached resolved inputMap entry for the current pointer gesture */
|
|
78
|
+
this._activeEntry = null;
|
|
79
|
+
/** Cached conditions object for pointer-lock fallback resolution to avoid per-event allocations */
|
|
80
|
+
this._pointerLockConditions = { button: 0, modifiers: {} };
|
|
81
|
+
/**
|
|
82
|
+
* Modifier state stored separately from `_pointerConditions` so it can be typed as a
|
|
83
|
+
* concrete (non-optional) object. This avoids non-null assertions when updating modifier
|
|
84
|
+
* fields on every pointer-down, and the conditions object holds the same reference so
|
|
85
|
+
* resolveInteraction sees the live state.
|
|
86
|
+
*/
|
|
87
|
+
this._pointerModifiers = { ctrl: false, alt: false, shift: false };
|
|
88
|
+
/** Cached conditions object for pointer-down resolution */
|
|
89
|
+
this._pointerConditions = { modifiers: this._pointerModifiers };
|
|
92
90
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (entry.interaction === "pan") {
|
|
134
|
-
const panScale = entry.sensitivity ?? (this.panningSensibility !== 0 ? 1 / this.panningSensibility : 0);
|
|
135
|
-
if (panScale !== 0) {
|
|
91
|
+
/**
|
|
92
|
+
* Gets the class name of the current input.
|
|
93
|
+
* @returns the class name
|
|
94
|
+
*/
|
|
95
|
+
getClassName() {
|
|
96
|
+
return "ArcRotateCameraPointersInput";
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Move camera from multi touch panning positions.
|
|
100
|
+
* @param previousMultiTouchPanPosition
|
|
101
|
+
* @param multiTouchPanPosition
|
|
102
|
+
*/
|
|
103
|
+
_computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition) {
|
|
104
|
+
if (previousMultiTouchPanPosition && multiTouchPanPosition) {
|
|
105
|
+
const moveDeltaX = multiTouchPanPosition.x - previousMultiTouchPanPosition.x;
|
|
106
|
+
const moveDeltaY = multiTouchPanPosition.y - previousMultiTouchPanPosition.y;
|
|
107
|
+
// Multi-touch pan is a gesture (no button), so consult the default pointer→pan entry for an
|
|
108
|
+
// explicit `sensitivity` override. When unset, fall back to the legacy `panningSensibility`
|
|
109
|
+
// (treating panningSensibility=0 as "panning disabled" for backward compatibility).
|
|
110
|
+
const panEntry = this.camera.movement.input.getEntry("pointer", "pan");
|
|
111
|
+
const panScale = panEntry?.sensitivity ?? (this.panningSensibility !== 0 ? 1 / this.panningSensibility : 0);
|
|
112
|
+
if (panScale !== 0) {
|
|
113
|
+
this.camera.movement.activeInput = true;
|
|
114
|
+
this.camera.movement.panAccumulatedPixels.x += -moveDeltaX * panScale;
|
|
115
|
+
this.camera.movement.panAccumulatedPixels.y += moveDeltaY * panScale;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Move camera from multitouch (pinch) zoom distances.
|
|
121
|
+
* @param previousPinchSquaredDistance
|
|
122
|
+
* @param pinchSquaredDistance
|
|
123
|
+
*/
|
|
124
|
+
_computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance) {
|
|
125
|
+
const radius = this.camera.radius || _a.MinimumRadiusForPinch;
|
|
126
|
+
if (this.useNaturalPinchZoom) {
|
|
127
|
+
this.camera.radius = (radius * Math.sqrt(previousPinchSquaredDistance)) / Math.sqrt(pinchSquaredDistance);
|
|
128
|
+
}
|
|
129
|
+
else if (this.pinchDeltaPercentage) {
|
|
130
|
+
const delta = (pinchSquaredDistance - previousPinchSquaredDistance) * 0.001 * radius * this.pinchDeltaPercentage;
|
|
136
131
|
this.camera.movement.activeInput = true;
|
|
137
|
-
this.camera.movement.
|
|
138
|
-
|
|
132
|
+
this.camera.movement.zoomAccumulatedPixels += delta;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const delta = (pinchSquaredDistance - previousPinchSquaredDistance) /
|
|
136
|
+
((this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY)) / 2);
|
|
137
|
+
this.camera.movement.activeInput = true;
|
|
138
|
+
this.camera.movement.zoomAccumulatedPixels += delta;
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Called on pointer POINTERMOVE event if only a single touch is active.
|
|
143
|
+
* @param point current touch point
|
|
144
|
+
* @param offsetX offset on X
|
|
145
|
+
* @param offsetY offset on Y
|
|
146
|
+
*/
|
|
147
|
+
onTouch(point, offsetX, offsetY) {
|
|
148
|
+
// In pointer-lock mode, mouse movement rotates the camera even without a button held.
|
|
149
|
+
// This matches legacy behavior where pointer-lock mouse deltas always drove rotation.
|
|
150
|
+
const entry = this._activeEntry ?? (this.camera.getEngine().isPointerLock ? this.camera.movement.input.resolveInteraction("pointer", this._pointerLockConditions) : null);
|
|
151
|
+
if (entry) {
|
|
152
|
+
// Per-pixel scale. The inputMap entry's `sensitivity` takes precedence so consumers can
|
|
153
|
+
// tune feel declaratively (and so we can phase out the legacy sensibility properties).
|
|
154
|
+
// When `sensitivity` is unset, fall back to the legacy properties for backward compat.
|
|
155
|
+
// For rotate, a single `sensitivity` value applies to both axes; the legacy fallback
|
|
156
|
+
// preserves separate X/Y tuning via `angularSensibilityX/Y`.
|
|
157
|
+
if (entry.interaction === "pan") {
|
|
158
|
+
const panScale = entry.sensitivity ?? (this.panningSensibility !== 0 ? 1 / this.panningSensibility : 0);
|
|
159
|
+
if (panScale !== 0) {
|
|
160
|
+
this.camera.movement.activeInput = true;
|
|
161
|
+
this.camera.movement.panAccumulatedPixels.x += -offsetX * panScale;
|
|
162
|
+
this.camera.movement.panAccumulatedPixels.y += offsetY * panScale;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (entry.interaction === "rotate") {
|
|
166
|
+
const rotateScaleX = entry.sensitivityX ?? entry.sensitivity ?? 1 / this.angularSensibilityX;
|
|
167
|
+
const rotateScaleY = entry.sensitivityY ?? entry.sensitivity ?? 1 / this.angularSensibilityY;
|
|
168
|
+
this.camera.movement.activeInput = true;
|
|
169
|
+
this.camera.movement.rotationAccumulatedPixels.x += -offsetX * rotateScaleX;
|
|
170
|
+
this.camera.movement.rotationAccumulatedPixels.y += -offsetY * rotateScaleY;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
147
173
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
serialize()
|
|
226
|
-
], ArcRotateCameraPointersInput.prototype, "panningSensibility", void 0);
|
|
174
|
+
/**
|
|
175
|
+
* Called on pointer POINTERDOUBLETAP event.
|
|
176
|
+
*/
|
|
177
|
+
onDoubleTap() {
|
|
178
|
+
if (this.camera.useInputToRestoreState) {
|
|
179
|
+
this.camera.restoreState();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Called on pointer POINTERMOVE event if multiple touches are active.
|
|
184
|
+
* @param pointA point A
|
|
185
|
+
* @param pointB point B
|
|
186
|
+
* @param previousPinchSquaredDistance distance between points in previous pinch
|
|
187
|
+
* @param pinchSquaredDistance distance between points in current pinch
|
|
188
|
+
* @param previousMultiTouchPanPosition multi-touch position in previous step
|
|
189
|
+
* @param multiTouchPanPosition multi-touch position in current step
|
|
190
|
+
*/
|
|
191
|
+
onMultiTouch(pointA, pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition) {
|
|
192
|
+
this._shouldStartPinchZoom =
|
|
193
|
+
this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(pinchSquaredDistance) - Math.sqrt(previousPinchSquaredDistance)) > this.camera.pinchToPanMaxDistance;
|
|
194
|
+
super.onMultiTouch(pointA, pointB, previousPinchSquaredDistance, pinchSquaredDistance, previousMultiTouchPanPosition, multiTouchPanPosition);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Called each time a new POINTERDOWN event occurs. Ie, for each button
|
|
198
|
+
* press.
|
|
199
|
+
* @param evt Defines the event to track
|
|
200
|
+
*/
|
|
201
|
+
onButtonDown(evt) {
|
|
202
|
+
this._pointerConditions.button = evt.button;
|
|
203
|
+
this._pointerModifiers.ctrl = evt.ctrlKey;
|
|
204
|
+
this._pointerModifiers.alt = evt.altKey;
|
|
205
|
+
this._pointerModifiers.shift = evt.shiftKey;
|
|
206
|
+
this._activeEntry = this.camera.movement.input.resolveInteraction("pointer", this._pointerConditions);
|
|
207
|
+
super.onButtonDown(evt);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Called each time a new POINTERUP event occurs. Ie, for each button
|
|
211
|
+
* release.
|
|
212
|
+
* @param _evt Defines the event to track
|
|
213
|
+
*/
|
|
214
|
+
onButtonUp(_evt) {
|
|
215
|
+
this._activeEntry = null;
|
|
216
|
+
super.onButtonUp(_evt);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Called when window becomes inactive.
|
|
220
|
+
*/
|
|
221
|
+
onLostFocus() {
|
|
222
|
+
this._activeEntry = null;
|
|
223
|
+
super.onLostFocus();
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
(() => {
|
|
227
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
228
|
+
_buttons_decorators = [serialize()];
|
|
229
|
+
_angularSensibilityX_decorators = [serialize()];
|
|
230
|
+
_angularSensibilityY_decorators = [serialize()];
|
|
231
|
+
_pinchPrecision_decorators = [serialize()];
|
|
232
|
+
_pinchDeltaPercentage_decorators = [serialize()];
|
|
233
|
+
_useNaturalPinchZoom_decorators = [serialize()];
|
|
234
|
+
_panningSensibility_decorators = [serialize()];
|
|
235
|
+
__esDecorate(null, null, _buttons_decorators, { kind: "field", name: "buttons", static: false, private: false, access: { has: obj => "buttons" in obj, get: obj => obj.buttons, set: (obj, value) => { obj.buttons = value; } }, metadata: _metadata }, _buttons_initializers, _buttons_extraInitializers);
|
|
236
|
+
__esDecorate(null, null, _angularSensibilityX_decorators, { kind: "field", name: "angularSensibilityX", static: false, private: false, access: { has: obj => "angularSensibilityX" in obj, get: obj => obj.angularSensibilityX, set: (obj, value) => { obj.angularSensibilityX = value; } }, metadata: _metadata }, _angularSensibilityX_initializers, _angularSensibilityX_extraInitializers);
|
|
237
|
+
__esDecorate(null, null, _angularSensibilityY_decorators, { kind: "field", name: "angularSensibilityY", static: false, private: false, access: { has: obj => "angularSensibilityY" in obj, get: obj => obj.angularSensibilityY, set: (obj, value) => { obj.angularSensibilityY = value; } }, metadata: _metadata }, _angularSensibilityY_initializers, _angularSensibilityY_extraInitializers);
|
|
238
|
+
__esDecorate(null, null, _pinchPrecision_decorators, { kind: "field", name: "pinchPrecision", static: false, private: false, access: { has: obj => "pinchPrecision" in obj, get: obj => obj.pinchPrecision, set: (obj, value) => { obj.pinchPrecision = value; } }, metadata: _metadata }, _pinchPrecision_initializers, _pinchPrecision_extraInitializers);
|
|
239
|
+
__esDecorate(null, null, _pinchDeltaPercentage_decorators, { kind: "field", name: "pinchDeltaPercentage", static: false, private: false, access: { has: obj => "pinchDeltaPercentage" in obj, get: obj => obj.pinchDeltaPercentage, set: (obj, value) => { obj.pinchDeltaPercentage = value; } }, metadata: _metadata }, _pinchDeltaPercentage_initializers, _pinchDeltaPercentage_extraInitializers);
|
|
240
|
+
__esDecorate(null, null, _useNaturalPinchZoom_decorators, { kind: "field", name: "useNaturalPinchZoom", static: false, private: false, access: { has: obj => "useNaturalPinchZoom" in obj, get: obj => obj.useNaturalPinchZoom, set: (obj, value) => { obj.useNaturalPinchZoom = value; } }, metadata: _metadata }, _useNaturalPinchZoom_initializers, _useNaturalPinchZoom_extraInitializers);
|
|
241
|
+
__esDecorate(null, null, _panningSensibility_decorators, { kind: "field", name: "panningSensibility", static: false, private: false, access: { has: obj => "panningSensibility" in obj, get: obj => obj.panningSensibility, set: (obj, value) => { obj.panningSensibility = value; } }, metadata: _metadata }, _panningSensibility_initializers, _panningSensibility_extraInitializers);
|
|
242
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
243
|
+
})(),
|
|
244
|
+
/**
|
|
245
|
+
* The minimum radius used for pinch, to avoid radius lock at 0
|
|
246
|
+
*/
|
|
247
|
+
_a.MinimumRadiusForPinch = 0.001,
|
|
248
|
+
_a;
|
|
249
|
+
})();
|
|
250
|
+
export { ArcRotateCameraPointersInput };
|
|
227
251
|
CameraInputTypes["ArcRotateCameraPointersInput"] = ArcRotateCameraPointersInput;
|
|
228
252
|
//# sourceMappingURL=arcRotateCameraPointersInput.js.map
|