@onerjs/core 8.53.5 → 8.53.7
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":"freeCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { type FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraMouseWheelInput } from \"../../Cameras/Inputs/BaseCameraMouseWheelInput\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector.pure\";\r\nimport { Coordinate } from \"../../Maths/math.axis\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nenum _CameraProperty {\r\n MoveRelative,\r\n RotateRelative,\r\n MoveScene,\r\n}\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraMouseWheelInput extends BaseCameraMouseWheelInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\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 override getClassName(): string {\r\n return \"FreeCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.RotateRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.RotateRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.RotateRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's X axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveScene;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Y axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveScene;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Z axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveScene;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Called for each rendered frame.\r\n */\r\n public override checkInputs(): void {\r\n if (this._wheelDeltaX === 0 && this._wheelDeltaY === 0 && this._wheelDeltaZ == 0) {\r\n return;\r\n }\r\n\r\n // Clear the camera properties that we might be updating.\r\n this._moveRelative.setAll(0);\r\n this._rotateRelative.setAll(0);\r\n this._moveScene.setAll(0);\r\n\r\n // Set the camera properties that are to be updated.\r\n this._updateCamera();\r\n\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n // TODO: Does this need done for worldUpdate too?\r\n this._moveRelative.z *= -1;\r\n }\r\n\r\n // Convert updates relative to camera to world position update.\r\n const cameraTransformMatrix = Matrix.Zero();\r\n this.camera.getViewMatrix().invertToRef(cameraTransformMatrix);\r\n\r\n const transformedDirection = Vector3.Zero();\r\n Vector3.TransformNormalToRef(this._moveRelative, cameraTransformMatrix, transformedDirection);\r\n\r\n // Apply updates to camera position.\r\n this.camera.cameraRotation.x += this._rotateRelative.x / 200;\r\n this.camera.cameraRotation.y += this._rotateRelative.y / 200;\r\n this.camera.cameraDirection.addInPlace(transformedDirection);\r\n this.camera.cameraDirection.addInPlace(this._moveScene);\r\n\r\n // Call the base class implementation to handle observers and do cleanup.\r\n super.checkInputs();\r\n }\r\n\r\n private _moveRelative = Vector3.Zero();\r\n private _rotateRelative = Vector3.Zero();\r\n private _moveScene = Vector3.Zero();\r\n\r\n /**\r\n * These are set to the desired default behaviour.\r\n */\r\n private _wheelXAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelXActionCoordinate: Nullable<Coordinate> = Coordinate.X;\r\n private _wheelYAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelYActionCoordinate: Nullable<Coordinate> = Coordinate.Z;\r\n private _wheelZAction: Nullable<_CameraProperty> = null;\r\n private _wheelZActionCoordinate: Nullable<Coordinate> = null;\r\n\r\n /**\r\n * Update the camera according to any configured properties for the 3\r\n * mouse-wheel axis.\r\n */\r\n private _updateCamera(): void {\r\n // Do the camera updates for each of the 3 touch-wheel axis.\r\n this._updateCameraProperty(this._wheelDeltaX, this._wheelXAction, this._wheelXActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaY, this._wheelYAction, this._wheelYActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaZ, this._wheelZAction, this._wheelZActionCoordinate);\r\n }\r\n\r\n /**\r\n * Update one property of the camera.\r\n * @param value\r\n * @param cameraProperty\r\n * @param coordinate\r\n */\r\n private _updateCameraProperty(\r\n /* Mouse-wheel delta. */\r\n value: number,\r\n /* Camera property to be changed. */\r\n cameraProperty: Nullable<_CameraProperty>,\r\n /* Axis of Camera property to be changed. */\r\n coordinate: Nullable<Coordinate>\r\n ): void {\r\n if (value === 0) {\r\n // Mouse wheel has not moved.\r\n return;\r\n }\r\n if (cameraProperty === null || coordinate === null) {\r\n // Mouse wheel axis not configured.\r\n return;\r\n }\r\n\r\n let action = null;\r\n switch (cameraProperty) {\r\n case _CameraProperty.MoveRelative:\r\n action = this._moveRelative;\r\n break;\r\n case _CameraProperty.RotateRelative:\r\n action = this._rotateRelative;\r\n break;\r\n case _CameraProperty.MoveScene:\r\n action = this._moveScene;\r\n break;\r\n }\r\n\r\n switch (coordinate) {\r\n case Coordinate.X:\r\n action.set(value, 0, 0);\r\n break;\r\n case Coordinate.Y:\r\n action.set(0, value, 0);\r\n break;\r\n case Coordinate.Z:\r\n action.set(0, 0, value);\r\n break;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseWheelInput\"] = FreeCameraMouseWheelInput;\r\n"]}
|
|
1
|
+
{"version":3,"file":"freeCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport { type FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraMouseWheelInput } from \"../../Cameras/Inputs/BaseCameraMouseWheelInput\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector.pure\";\r\nimport { Coordinate } from \"../../Maths/math.axis\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nenum _CameraProperty {\r\n MoveRelative,\r\n RotateRelative,\r\n MoveScene,\r\n}\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraMouseWheelInput extends BaseCameraMouseWheelInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\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 override getClassName(): string {\r\n return \"FreeCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.RotateRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.RotateRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.RotateRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's X axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveScene;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Y axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveScene;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Z axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveScene;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Called for each rendered frame.\r\n */\r\n public override checkInputs(): void {\r\n if (this._wheelDeltaX === 0 && this._wheelDeltaY === 0 && this._wheelDeltaZ == 0) {\r\n return;\r\n }\r\n\r\n // Clear the camera properties that we might be updating.\r\n this._moveRelative.setAll(0);\r\n this._rotateRelative.setAll(0);\r\n this._moveScene.setAll(0);\r\n\r\n // Set the camera properties that are to be updated.\r\n this._updateCamera();\r\n\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n // TODO: Does this need done for worldUpdate too?\r\n this._moveRelative.z *= -1;\r\n }\r\n\r\n // Convert updates relative to camera to world position update.\r\n const cameraTransformMatrix = Matrix.Zero();\r\n this.camera.getViewMatrix().invertToRef(cameraTransformMatrix);\r\n\r\n const transformedDirection = Vector3.Zero();\r\n Vector3.TransformNormalToRef(this._moveRelative, cameraTransformMatrix, transformedDirection);\r\n\r\n // Apply updates to camera position.\r\n this.camera.cameraRotation.x += this._rotateRelative.x / 200;\r\n this.camera.cameraRotation.y += this._rotateRelative.y / 200;\r\n this.camera.cameraDirection.addInPlace(transformedDirection);\r\n this.camera.cameraDirection.addInPlace(this._moveScene);\r\n\r\n // Call the base class implementation to handle observers and do cleanup.\r\n super.checkInputs();\r\n }\r\n\r\n private _moveRelative = Vector3.Zero();\r\n private _rotateRelative = Vector3.Zero();\r\n private _moveScene = Vector3.Zero();\r\n\r\n /**\r\n * These are set to the desired default behaviour.\r\n */\r\n private _wheelXAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelXActionCoordinate: Nullable<Coordinate> = Coordinate.X;\r\n private _wheelYAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelYActionCoordinate: Nullable<Coordinate> = Coordinate.Z;\r\n private _wheelZAction: Nullable<_CameraProperty> = null;\r\n private _wheelZActionCoordinate: Nullable<Coordinate> = null;\r\n\r\n /**\r\n * Update the camera according to any configured properties for the 3\r\n * mouse-wheel axis.\r\n */\r\n private _updateCamera(): void {\r\n // Do the camera updates for each of the 3 touch-wheel axis.\r\n this._updateCameraProperty(this._wheelDeltaX, this._wheelXAction, this._wheelXActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaY, this._wheelYAction, this._wheelYActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaZ, this._wheelZAction, this._wheelZActionCoordinate);\r\n }\r\n\r\n /**\r\n * Update one property of the camera.\r\n * @param value\r\n * @param cameraProperty\r\n * @param coordinate\r\n */\r\n private _updateCameraProperty(\r\n /* Mouse-wheel delta. */\r\n value: number,\r\n /* Camera property to be changed. */\r\n cameraProperty: Nullable<_CameraProperty>,\r\n /* Axis of Camera property to be changed. */\r\n coordinate: Nullable<Coordinate>\r\n ): void {\r\n if (value === 0) {\r\n // Mouse wheel has not moved.\r\n return;\r\n }\r\n if (cameraProperty === null || coordinate === null) {\r\n // Mouse wheel axis not configured.\r\n return;\r\n }\r\n\r\n let action = null;\r\n switch (cameraProperty) {\r\n case _CameraProperty.MoveRelative:\r\n action = this._moveRelative;\r\n break;\r\n case _CameraProperty.RotateRelative:\r\n action = this._rotateRelative;\r\n break;\r\n case _CameraProperty.MoveScene:\r\n action = this._moveScene;\r\n break;\r\n }\r\n\r\n switch (coordinate) {\r\n case Coordinate.X:\r\n action.set(value, 0, 0);\r\n break;\r\n case Coordinate.Y:\r\n action.set(0, value, 0);\r\n break;\r\n case Coordinate.Z:\r\n action.set(0, 0, value);\r\n break;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseWheelInput\"] = FreeCameraMouseWheelInput;\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 { PointerEventTypes } from "../../Events/pointerEvents.js";
|
|
@@ -8,191 +8,204 @@ import { Tools } from "../../Misc/tools.pure.js";
|
|
|
8
8
|
* Manage the touch inputs to control the movement of a free camera.
|
|
9
9
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs
|
|
10
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
|
-
attachControl(noPreventDefault) {
|
|
47
|
-
noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);
|
|
48
|
-
let previousPosition = null;
|
|
49
|
-
if (this._pointerInput === undefined) {
|
|
50
|
-
this._onLostFocus = () => {
|
|
11
|
+
let FreeCameraTouchInput = (() => {
|
|
12
|
+
var _a;
|
|
13
|
+
let _touchAngularSensibility_decorators;
|
|
14
|
+
let _touchAngularSensibility_initializers = [];
|
|
15
|
+
let _touchAngularSensibility_extraInitializers = [];
|
|
16
|
+
let _touchMoveSensibility_decorators;
|
|
17
|
+
let _touchMoveSensibility_initializers = [];
|
|
18
|
+
let _touchMoveSensibility_extraInitializers = [];
|
|
19
|
+
return _a = class FreeCameraTouchInput {
|
|
20
|
+
/**
|
|
21
|
+
* Manage the touch inputs to control the movement of a free camera.
|
|
22
|
+
* @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs
|
|
23
|
+
* @param allowMouse Defines if mouse events can be treated as touch events
|
|
24
|
+
*/
|
|
25
|
+
constructor(
|
|
26
|
+
/**
|
|
27
|
+
* [false] Define if mouse events can be treated as touch events
|
|
28
|
+
*/
|
|
29
|
+
allowMouse = false) {
|
|
30
|
+
this.allowMouse = allowMouse;
|
|
31
|
+
/**
|
|
32
|
+
* Defines the touch sensibility for rotation.
|
|
33
|
+
* The lower the faster.
|
|
34
|
+
*/
|
|
35
|
+
this.touchAngularSensibility = __runInitializers(this, _touchAngularSensibility_initializers, 200000.0);
|
|
36
|
+
/**
|
|
37
|
+
* Defines the touch sensibility for move.
|
|
38
|
+
* The lower the faster.
|
|
39
|
+
*/
|
|
40
|
+
this.touchMoveSensibility = (__runInitializers(this, _touchAngularSensibility_extraInitializers), __runInitializers(this, _touchMoveSensibility_initializers, 250.0));
|
|
41
|
+
/**
|
|
42
|
+
* Swap touch actions so that one touch is used for rotation and multiple for movement
|
|
43
|
+
*/
|
|
44
|
+
this.singleFingerRotate = (__runInitializers(this, _touchMoveSensibility_extraInitializers), false);
|
|
51
45
|
this._offsetX = null;
|
|
52
46
|
this._offsetY = null;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+
this._pointerPressed = new Array();
|
|
48
|
+
this._isSafari = Tools.IsSafari();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Attach the input controls to a specific dom element to get the input from.
|
|
52
|
+
* @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
|
|
53
|
+
*/
|
|
54
|
+
attachControl(noPreventDefault) {
|
|
55
|
+
noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);
|
|
56
|
+
let previousPosition = null;
|
|
57
|
+
if (this._pointerInput === undefined) {
|
|
58
|
+
this._onLostFocus = () => {
|
|
59
|
+
this._offsetX = null;
|
|
60
|
+
this._offsetY = null;
|
|
61
|
+
};
|
|
62
|
+
this._pointerInput = (p) => {
|
|
63
|
+
const evt = p.event;
|
|
64
|
+
const isMouseEvent = evt.pointerType === "mouse" || (this._isSafari && typeof evt.pointerType === "undefined");
|
|
65
|
+
if (!this.allowMouse && isMouseEvent) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (p.type === PointerEventTypes.POINTERDOWN) {
|
|
69
|
+
if (!noPreventDefault) {
|
|
70
|
+
evt.preventDefault();
|
|
71
|
+
}
|
|
72
|
+
this._pointerPressed.push(evt.pointerId);
|
|
73
|
+
if (this._pointerPressed.length !== 1) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
previousPosition = {
|
|
77
|
+
x: evt.clientX,
|
|
78
|
+
y: evt.clientY,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
else if (p.type === PointerEventTypes.POINTERUP) {
|
|
82
|
+
if (!noPreventDefault) {
|
|
83
|
+
evt.preventDefault();
|
|
84
|
+
}
|
|
85
|
+
const index = this._pointerPressed.indexOf(evt.pointerId);
|
|
86
|
+
if (index === -1) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this._pointerPressed.splice(index, 1);
|
|
90
|
+
if (index != 0) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
previousPosition = null;
|
|
94
|
+
this._offsetX = null;
|
|
95
|
+
this._offsetY = null;
|
|
96
|
+
}
|
|
97
|
+
else if (p.type === PointerEventTypes.POINTERMOVE) {
|
|
98
|
+
if (!noPreventDefault) {
|
|
99
|
+
evt.preventDefault();
|
|
100
|
+
}
|
|
101
|
+
if (!previousPosition) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const index = this._pointerPressed.indexOf(evt.pointerId);
|
|
105
|
+
if (index != 0) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this._offsetX = evt.clientX - previousPosition.x;
|
|
109
|
+
this._offsetY = -(evt.clientY - previousPosition.y);
|
|
110
|
+
}
|
|
71
111
|
};
|
|
72
112
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
113
|
+
this._observer = this.camera
|
|
114
|
+
.getScene()
|
|
115
|
+
._inputManager._addCameraPointerObserver(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);
|
|
116
|
+
if (this._onLostFocus) {
|
|
117
|
+
const engine = this.camera.getEngine();
|
|
118
|
+
const element = engine.getInputElement();
|
|
119
|
+
if (element) {
|
|
120
|
+
element.addEventListener("blur", this._onLostFocus);
|
|
76
121
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Detach the current controls from the specified dom element.
|
|
126
|
+
*/
|
|
127
|
+
detachControl() {
|
|
128
|
+
if (this._pointerInput) {
|
|
129
|
+
if (this._observer) {
|
|
130
|
+
this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);
|
|
131
|
+
this._observer = null;
|
|
80
132
|
}
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
133
|
+
if (this._onLostFocus) {
|
|
134
|
+
const engine = this.camera.getEngine();
|
|
135
|
+
const element = engine.getInputElement();
|
|
136
|
+
if (element) {
|
|
137
|
+
element.removeEventListener("blur", this._onLostFocus);
|
|
138
|
+
}
|
|
139
|
+
this._onLostFocus = null;
|
|
84
140
|
}
|
|
85
|
-
|
|
141
|
+
this._pointerPressed.length = 0;
|
|
86
142
|
this._offsetX = null;
|
|
87
143
|
this._offsetY = null;
|
|
88
144
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Update the current camera state depending on the inputs that have been used this frame.
|
|
148
|
+
* This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.
|
|
149
|
+
*/
|
|
150
|
+
checkInputs() {
|
|
151
|
+
if (this._offsetX === null || this._offsetY === null) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (this._offsetX === 0 && this._offsetY === 0) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const camera = this.camera;
|
|
158
|
+
// Touch look (yaw/pitch) is gated on touch→rotate and the forward drag-move on
|
|
159
|
+
// touch→translate. Removing an entry disables that touch behavior. An entry's optional
|
|
160
|
+
// `sensitivity` replaces the legacy 1/touchAngularSensibility (rotate) or
|
|
161
|
+
// 1/touchMoveSensibility (translate) scale factor.
|
|
162
|
+
const input = camera.movement.input;
|
|
163
|
+
const rotateEntry = input.getEntry("touch", "rotate");
|
|
164
|
+
const translateEntry = input.getEntry("touch", "translate");
|
|
165
|
+
const handednessMultiplier = camera._calculateHandednessMultiplier();
|
|
166
|
+
const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);
|
|
167
|
+
if (rotateEntry) {
|
|
168
|
+
const rotateSensitivity = rotateEntry.sensitivity ?? 1 / this.touchAngularSensibility;
|
|
169
|
+
camera.cameraRotation.y = this._offsetX * handednessMultiplier * rotateSensitivity;
|
|
170
|
+
if (rotateCamera) {
|
|
171
|
+
camera.cameraRotation.x = -(this._offsetY * handednessMultiplier) * rotateSensitivity;
|
|
99
172
|
}
|
|
100
|
-
this._offsetX = evt.clientX - previousPosition.x;
|
|
101
|
-
this._offsetY = -(evt.clientY - previousPosition.y);
|
|
102
173
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
if (element) {
|
|
112
|
-
element.addEventListener("blur", this._onLostFocus);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Detach the current controls from the specified dom element.
|
|
118
|
-
*/
|
|
119
|
-
detachControl() {
|
|
120
|
-
if (this._pointerInput) {
|
|
121
|
-
if (this._observer) {
|
|
122
|
-
this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);
|
|
123
|
-
this._observer = null;
|
|
124
|
-
}
|
|
125
|
-
if (this._onLostFocus) {
|
|
126
|
-
const engine = this.camera.getEngine();
|
|
127
|
-
const element = engine.getInputElement();
|
|
128
|
-
if (element) {
|
|
129
|
-
element.removeEventListener("blur", this._onLostFocus);
|
|
174
|
+
if (!rotateCamera && translateEntry) {
|
|
175
|
+
const speed = camera._computeLocalCameraSpeed();
|
|
176
|
+
const moveSensitivity = translateEntry.sensitivity ?? (this.touchMoveSensibility !== 0 ? 1 / this.touchMoveSensibility : 0);
|
|
177
|
+
const direction = TmpVectors.Vector3[0];
|
|
178
|
+
direction.copyFromFloats(0, 0, speed * this._offsetY * moveSensitivity);
|
|
179
|
+
Matrix.RotationYawPitchRollToRef(camera.rotation.y, camera.rotation.x, 0, camera._cameraRotationMatrix);
|
|
180
|
+
Vector3.TransformCoordinatesToRef(direction, camera._cameraRotationMatrix, direction);
|
|
181
|
+
camera.cameraDirection.addInPlace(direction);
|
|
130
182
|
}
|
|
131
|
-
this._onLostFocus = null;
|
|
132
183
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (this._offsetX === 0 && this._offsetY === 0) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
const camera = this.camera;
|
|
150
|
-
// Touch look (yaw/pitch) is gated on touch→rotate and the forward drag-move on
|
|
151
|
-
// touch→translate. Removing an entry disables that touch behavior. An entry's optional
|
|
152
|
-
// `sensitivity` replaces the legacy 1/touchAngularSensibility (rotate) or
|
|
153
|
-
// 1/touchMoveSensibility (translate) scale factor.
|
|
154
|
-
const input = camera.movement.input;
|
|
155
|
-
const rotateEntry = input.getEntry("touch", "rotate");
|
|
156
|
-
const translateEntry = input.getEntry("touch", "translate");
|
|
157
|
-
const handednessMultiplier = camera._calculateHandednessMultiplier();
|
|
158
|
-
const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);
|
|
159
|
-
if (rotateEntry) {
|
|
160
|
-
const rotateSensitivity = rotateEntry.sensitivity ?? 1 / this.touchAngularSensibility;
|
|
161
|
-
camera.cameraRotation.y = this._offsetX * handednessMultiplier * rotateSensitivity;
|
|
162
|
-
if (rotateCamera) {
|
|
163
|
-
camera.cameraRotation.x = -(this._offsetY * handednessMultiplier) * rotateSensitivity;
|
|
184
|
+
/**
|
|
185
|
+
* Gets the class name of the current input.
|
|
186
|
+
* @returns the class name
|
|
187
|
+
*/
|
|
188
|
+
getClassName() {
|
|
189
|
+
return "FreeCameraTouchInput";
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get the friendly name associated with the input class.
|
|
193
|
+
* @returns the input friendly name
|
|
194
|
+
*/
|
|
195
|
+
getSimpleName() {
|
|
196
|
+
return "touch";
|
|
164
197
|
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
* Gets the class name of the current input.
|
|
178
|
-
* @returns the class name
|
|
179
|
-
*/
|
|
180
|
-
getClassName() {
|
|
181
|
-
return "FreeCameraTouchInput";
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Get the friendly name associated with the input class.
|
|
185
|
-
* @returns the input friendly name
|
|
186
|
-
*/
|
|
187
|
-
getSimpleName() {
|
|
188
|
-
return "touch";
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
__decorate([
|
|
192
|
-
serialize()
|
|
193
|
-
], FreeCameraTouchInput.prototype, "touchAngularSensibility", void 0);
|
|
194
|
-
__decorate([
|
|
195
|
-
serialize()
|
|
196
|
-
], FreeCameraTouchInput.prototype, "touchMoveSensibility", void 0);
|
|
198
|
+
},
|
|
199
|
+
(() => {
|
|
200
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
201
|
+
_touchAngularSensibility_decorators = [serialize()];
|
|
202
|
+
_touchMoveSensibility_decorators = [serialize()];
|
|
203
|
+
__esDecorate(null, null, _touchAngularSensibility_decorators, { kind: "field", name: "touchAngularSensibility", static: false, private: false, access: { has: obj => "touchAngularSensibility" in obj, get: obj => obj.touchAngularSensibility, set: (obj, value) => { obj.touchAngularSensibility = value; } }, metadata: _metadata }, _touchAngularSensibility_initializers, _touchAngularSensibility_extraInitializers);
|
|
204
|
+
__esDecorate(null, null, _touchMoveSensibility_decorators, { kind: "field", name: "touchMoveSensibility", static: false, private: false, access: { has: obj => "touchMoveSensibility" in obj, get: obj => obj.touchMoveSensibility, set: (obj, value) => { obj.touchMoveSensibility = value; } }, metadata: _metadata }, _touchMoveSensibility_initializers, _touchMoveSensibility_extraInitializers);
|
|
205
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
206
|
+
})(),
|
|
207
|
+
_a;
|
|
208
|
+
})();
|
|
209
|
+
export { FreeCameraTouchInput };
|
|
197
210
|
CameraInputTypes["FreeCameraTouchInput"] = FreeCameraTouchInput;
|
|
198
211
|
//# sourceMappingURL=freeCameraTouchInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freeCameraTouchInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraTouchInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { serialize } from \"../../Misc/decorators\";\r\nimport { type Observer, type EventState } from \"../../Misc/observable\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { type FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { type PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"../../Maths/math.vector.pure\";\r\nimport { Tools } from \"../../Misc/tools.pure\";\r\nimport { type IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraTouchInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the touch sensibility for rotation.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchAngularSensibility: number = 200000.0;\r\n\r\n /**\r\n * Defines the touch sensibility for move.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchMoveSensibility: number = 250.0;\r\n\r\n /**\r\n * Swap touch actions so that one touch is used for rotation and multiple for movement\r\n */\r\n public singleFingerRotate: boolean = false;\r\n\r\n private _offsetX: Nullable<number> = null;\r\n private _offsetY: Nullable<number> = null;\r\n\r\n private _pointerPressed = new Array<number>();\r\n private _pointerInput?: (p: PointerInfo, s: EventState) => void;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _onLostFocus: Nullable<(e: FocusEvent) => any>;\r\n private _isSafari: boolean;\r\n\r\n /**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n * @param allowMouse Defines if mouse events can be treated as touch events\r\n */\r\n constructor(\r\n /**\r\n * [false] Define if mouse events can be treated as touch events\r\n */\r\n public allowMouse = false\r\n ) {\r\n this._isSafari = Tools.IsSafari();\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 let previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n if (this._pointerInput === undefined) {\r\n this._onLostFocus = () => {\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n };\r\n\r\n this._pointerInput = (p) => {\r\n const evt = <IPointerEvent>p.event;\r\n\r\n const isMouseEvent = evt.pointerType === \"mouse\" || (this._isSafari && typeof evt.pointerType === \"undefined\");\r\n\r\n if (!this.allowMouse && isMouseEvent) {\r\n return;\r\n }\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n this._pointerPressed.push(evt.pointerId);\r\n\r\n if (this._pointerPressed.length !== 1) {\r\n return;\r\n }\r\n\r\n previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n } else if (p.type === PointerEventTypes.POINTERUP) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n const index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n this._pointerPressed.splice(index, 1);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n previousPosition = null;\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (!previousPosition) {\r\n return;\r\n }\r\n\r\n const index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n\r\n this._offsetX = evt.clientX - previousPosition.x;\r\n this._offsetY = -(evt.clientY - previousPosition.y);\r\n }\r\n };\r\n }\r\n\r\n this._observer = this.camera\r\n .getScene()\r\n ._inputManager._addCameraPointerObserver(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n if (element) {\r\n element.addEventListener(\"blur\", this._onLostFocus);\r\n }\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._pointerInput) {\r\n if (this._observer) {\r\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\r\n this._observer = null;\r\n }\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n if (element) {\r\n element.removeEventListener(\"blur\", this._onLostFocus);\r\n }\r\n\r\n this._onLostFocus = null;\r\n }\r\n this._pointerPressed.length = 0;\r\n this._offsetX = null;\r\n this._offsetY = 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._offsetX === null || this._offsetY === null) {\r\n return;\r\n }\r\n if (this._offsetX === 0 && this._offsetY === 0) {\r\n return;\r\n }\r\n\r\n const camera = this.camera;\r\n // Touch look (yaw/pitch) is gated on touch→rotate and the forward drag-move on\r\n // touch→translate. Removing an entry disables that touch behavior. An entry's optional\r\n // `sensitivity` replaces the legacy 1/touchAngularSensibility (rotate) or\r\n // 1/touchMoveSensibility (translate) scale factor.\r\n const input = camera.movement.input;\r\n const rotateEntry = input.getEntry(\"touch\", \"rotate\");\r\n const translateEntry = input.getEntry(\"touch\", \"translate\");\r\n const handednessMultiplier = camera._calculateHandednessMultiplier();\r\n\r\n const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);\r\n\r\n if (rotateEntry) {\r\n const rotateSensitivity = rotateEntry.sensitivity ?? 1 / this.touchAngularSensibility;\r\n camera.cameraRotation.y = this._offsetX * handednessMultiplier * rotateSensitivity;\r\n if (rotateCamera) {\r\n camera.cameraRotation.x = -(this._offsetY * handednessMultiplier) * rotateSensitivity;\r\n }\r\n }\r\n\r\n if (!rotateCamera && translateEntry) {\r\n const speed = camera._computeLocalCameraSpeed();\r\n const moveSensitivity = translateEntry.sensitivity ?? (this.touchMoveSensibility !== 0 ? 1 / this.touchMoveSensibility : 0);\r\n const direction = TmpVectors.Vector3[0];\r\n direction.copyFromFloats(0, 0, speed * this._offsetY * moveSensitivity);\r\n\r\n Matrix.RotationYawPitchRollToRef(camera.rotation.y, camera.rotation.x, 0, camera._cameraRotationMatrix);\r\n Vector3.TransformCoordinatesToRef(direction, camera._cameraRotationMatrix, direction);\r\n camera.cameraDirection.addInPlace(direction);\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 \"FreeCameraTouchInput\";\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 \"touch\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraTouchInput\"] = FreeCameraTouchInput;\r\n"]}
|
|
1
|
+
{"version":3,"file":"freeCameraTouchInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraTouchInput.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,OAAO,EAAqB,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAExF,OAAO,EAAoB,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C;;;GAGG;IACU,oBAAoB;;;;;;;;sBAApB,oBAAoB;YAkC7B;;;;eAIG;YACH;YACI;;eAEG;YACI,aAAa,KAAK;gBAAlB,eAAU,GAAV,UAAU,CAAQ;gBArC7B;;;mBAGG;gBAEI,4BAAuB,kEAAW,QAAQ,EAAC;gBAElD;;;mBAGG;gBAEI,yBAAoB,qIAAW,KAAK,GAAC;gBAE5C;;mBAEG;gBACI,uBAAkB,sEAAY,KAAK,EAAC;gBAEnC,aAAQ,GAAqB,IAAI,CAAC;gBAClC,aAAQ,GAAqB,IAAI,CAAC;gBAElC,oBAAe,GAAG,IAAI,KAAK,EAAU,CAAC;gBAiB1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,CAAC;YAED;;;eAGG;YACI,aAAa,CAAC,gBAA0B;gBAC3C,gBAAgB,GAAG,KAAK,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;gBACrE,IAAI,gBAAgB,GAAuC,IAAI,CAAC;gBAEhE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE;wBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACzB,CAAC,CAAC;oBAEF,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE,EAAE;wBACvB,MAAM,GAAG,GAAkB,CAAC,CAAC,KAAK,CAAC;wBAEnC,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;wBAE/G,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,YAAY,EAAE,CAAC;4BACnC,OAAO;wBACX,CAAC;wBAED,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW,EAAE,CAAC;4BAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACpB,GAAG,CAAC,cAAc,EAAE,CAAC;4BACzB,CAAC;4BAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BAEzC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCACpC,OAAO;4BACX,CAAC;4BAED,gBAAgB,GAAG;gCACf,CAAC,EAAE,GAAG,CAAC,OAAO;gCACd,CAAC,EAAE,GAAG,CAAC,OAAO;6BACjB,CAAC;wBACN,CAAC;6BAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE,CAAC;4BAChD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACpB,GAAG,CAAC,cAAc,EAAE,CAAC;4BACzB,CAAC;4BAED,MAAM,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BAElE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gCACf,OAAO;4BACX,CAAC;4BACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;4BAEtC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gCACb,OAAO;4BACX,CAAC;4BACD,gBAAgB,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;4BACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACzB,CAAC;6BAAM,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,WAAW,EAAE,CAAC;4BAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACpB,GAAG,CAAC,cAAc,EAAE,CAAC;4BACzB,CAAC;4BAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;gCACpB,OAAO;4BACX,CAAC;4BAED,MAAM,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BAElE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gCACb,OAAO;4BACX,CAAC;4BAED,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;4BACjD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACxD,CAAC;oBACL,CAAC,CAAC;gBACN,CAAC;gBAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;qBACvB,QAAQ,EAAE;qBACV,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,WAAW,GAAG,iBAAiB,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAE9J,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;oBACzC,IAAI,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACxD,CAAC;gBACL,CAAC;YACL,CAAC;YAED;;eAEG;YACI,aAAa;gBAChB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;wBACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAClF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBAC1B,CAAC;oBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;wBACzC,IAAI,OAAO,EAAE,CAAC;4BACV,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC3D,CAAC;wBAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC7B,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzB,CAAC;YACL,CAAC;YAED;;;eAGG;YACI,WAAW;gBACd,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACnD,OAAO;gBACX,CAAC;gBACD,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC7C,OAAO;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC3B,+EAA+E;gBAC/E,uFAAuF;gBACvF,0EAA0E;gBAC1E,mDAAmD;gBACnD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACpC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC5D,MAAM,oBAAoB,GAAG,MAAM,CAAC,8BAA8B,EAAE,CAAC;gBAErE,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAErJ,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC;oBACtF,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;oBACnF,IAAI,YAAY,EAAE,CAAC;wBACf,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,GAAG,iBAAiB,CAAC;oBAC1F,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC;oBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,wBAAwB,EAAE,CAAC;oBAChD,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5H,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxC,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,CAAC;oBAExE,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;oBACxG,OAAO,CAAC,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;oBACtF,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YAED;;;eAGG;YACI,YAAY;gBACf,OAAO,sBAAsB,CAAC;YAClC,CAAC;YAED;;;eAGG;YACI,aAAa;gBAChB,OAAO,OAAO,CAAC;YACnB,CAAC;;;;mDAnNA,SAAS,EAAE;gDAOX,SAAS,EAAE;YANZ,uNAAO,uBAAuB,6BAAvB,uBAAuB,yHAAoB;YAOlD,8MAAO,oBAAoB,6BAApB,oBAAoB,mHAAiB;;;;;SAlBnC,oBAAoB;AAgO3B,gBAAiB,CAAC,sBAAsB,CAAC,GAAG,oBAAoB,CAAC","sourcesContent":["import { serialize } from \"../../Misc/decorators\";\r\nimport { type Observer, type EventState } from \"../../Misc/observable\";\r\nimport { type Nullable } from \"../../types\";\r\nimport { type ICameraInput, CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { type FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { type PointerInfo, PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Matrix, TmpVectors, Vector3 } from \"../../Maths/math.vector.pure\";\r\nimport { Tools } from \"../../Misc/tools.pure\";\r\nimport { type IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n/**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraTouchInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Defines the touch sensibility for rotation.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchAngularSensibility: number = 200000.0;\r\n\r\n /**\r\n * Defines the touch sensibility for move.\r\n * The lower the faster.\r\n */\r\n @serialize()\r\n public touchMoveSensibility: number = 250.0;\r\n\r\n /**\r\n * Swap touch actions so that one touch is used for rotation and multiple for movement\r\n */\r\n public singleFingerRotate: boolean = false;\r\n\r\n private _offsetX: Nullable<number> = null;\r\n private _offsetY: Nullable<number> = null;\r\n\r\n private _pointerPressed = new Array<number>();\r\n private _pointerInput?: (p: PointerInfo, s: EventState) => void;\r\n private _observer: Nullable<Observer<PointerInfo>>;\r\n private _onLostFocus: Nullable<(e: FocusEvent) => any>;\r\n private _isSafari: boolean;\r\n\r\n /**\r\n * Manage the touch inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n * @param allowMouse Defines if mouse events can be treated as touch events\r\n */\r\n constructor(\r\n /**\r\n * [false] Define if mouse events can be treated as touch events\r\n */\r\n public allowMouse = false\r\n ) {\r\n this._isSafari = Tools.IsSafari();\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 let previousPosition: Nullable<{ x: number; y: number }> = null;\r\n\r\n if (this._pointerInput === undefined) {\r\n this._onLostFocus = () => {\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n };\r\n\r\n this._pointerInput = (p) => {\r\n const evt = <IPointerEvent>p.event;\r\n\r\n const isMouseEvent = evt.pointerType === \"mouse\" || (this._isSafari && typeof evt.pointerType === \"undefined\");\r\n\r\n if (!this.allowMouse && isMouseEvent) {\r\n return;\r\n }\r\n\r\n if (p.type === PointerEventTypes.POINTERDOWN) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n this._pointerPressed.push(evt.pointerId);\r\n\r\n if (this._pointerPressed.length !== 1) {\r\n return;\r\n }\r\n\r\n previousPosition = {\r\n x: evt.clientX,\r\n y: evt.clientY,\r\n };\r\n } else if (p.type === PointerEventTypes.POINTERUP) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n const index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n this._pointerPressed.splice(index, 1);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n previousPosition = null;\r\n this._offsetX = null;\r\n this._offsetY = null;\r\n } else if (p.type === PointerEventTypes.POINTERMOVE) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n\r\n if (!previousPosition) {\r\n return;\r\n }\r\n\r\n const index: number = this._pointerPressed.indexOf(evt.pointerId);\r\n\r\n if (index != 0) {\r\n return;\r\n }\r\n\r\n this._offsetX = evt.clientX - previousPosition.x;\r\n this._offsetY = -(evt.clientY - previousPosition.y);\r\n }\r\n };\r\n }\r\n\r\n this._observer = this.camera\r\n .getScene()\r\n ._inputManager._addCameraPointerObserver(this._pointerInput, PointerEventTypes.POINTERDOWN | PointerEventTypes.POINTERUP | PointerEventTypes.POINTERMOVE);\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n if (element) {\r\n element.addEventListener(\"blur\", this._onLostFocus);\r\n }\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._pointerInput) {\r\n if (this._observer) {\r\n this.camera.getScene()._inputManager._removeCameraPointerObserver(this._observer);\r\n this._observer = null;\r\n }\r\n\r\n if (this._onLostFocus) {\r\n const engine = this.camera.getEngine();\r\n const element = engine.getInputElement();\r\n if (element) {\r\n element.removeEventListener(\"blur\", this._onLostFocus);\r\n }\r\n\r\n this._onLostFocus = null;\r\n }\r\n this._pointerPressed.length = 0;\r\n this._offsetX = null;\r\n this._offsetY = 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._offsetX === null || this._offsetY === null) {\r\n return;\r\n }\r\n if (this._offsetX === 0 && this._offsetY === 0) {\r\n return;\r\n }\r\n\r\n const camera = this.camera;\r\n // Touch look (yaw/pitch) is gated on touch→rotate and the forward drag-move on\r\n // touch→translate. Removing an entry disables that touch behavior. An entry's optional\r\n // `sensitivity` replaces the legacy 1/touchAngularSensibility (rotate) or\r\n // 1/touchMoveSensibility (translate) scale factor.\r\n const input = camera.movement.input;\r\n const rotateEntry = input.getEntry(\"touch\", \"rotate\");\r\n const translateEntry = input.getEntry(\"touch\", \"translate\");\r\n const handednessMultiplier = camera._calculateHandednessMultiplier();\r\n\r\n const rotateCamera = (this.singleFingerRotate && this._pointerPressed.length === 1) || (!this.singleFingerRotate && this._pointerPressed.length > 1);\r\n\r\n if (rotateEntry) {\r\n const rotateSensitivity = rotateEntry.sensitivity ?? 1 / this.touchAngularSensibility;\r\n camera.cameraRotation.y = this._offsetX * handednessMultiplier * rotateSensitivity;\r\n if (rotateCamera) {\r\n camera.cameraRotation.x = -(this._offsetY * handednessMultiplier) * rotateSensitivity;\r\n }\r\n }\r\n\r\n if (!rotateCamera && translateEntry) {\r\n const speed = camera._computeLocalCameraSpeed();\r\n const moveSensitivity = translateEntry.sensitivity ?? (this.touchMoveSensibility !== 0 ? 1 / this.touchMoveSensibility : 0);\r\n const direction = TmpVectors.Vector3[0];\r\n direction.copyFromFloats(0, 0, speed * this._offsetY * moveSensitivity);\r\n\r\n Matrix.RotationYawPitchRollToRef(camera.rotation.y, camera.rotation.x, 0, camera._cameraRotationMatrix);\r\n Vector3.TransformCoordinatesToRef(direction, camera._cameraRotationMatrix, direction);\r\n camera.cameraDirection.addInPlace(direction);\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 \"FreeCameraTouchInput\";\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 \"touch\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraTouchInput\"] = FreeCameraTouchInput;\r\n"]}
|
|
@@ -74,6 +74,8 @@ export declare class GeospatialCameraKeyboardInput implements ICameraInput<Geosp
|
|
|
74
74
|
private _keyboardModifiers;
|
|
75
75
|
/** Cached conditions object to avoid per-frame allocations in checkInputs */
|
|
76
76
|
private _keyboardConditions;
|
|
77
|
+
/** Reused accumulator for the per-frame keyboard pan direction, to avoid per-frame allocations */
|
|
78
|
+
private _panDirection;
|
|
77
79
|
/**
|
|
78
80
|
* Attach the input controls to a specific dom element to get the input from.
|
|
79
81
|
* @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)
|