@onerjs/core 8.53.5 → 8.53.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Animations/animationGroup.d.ts +0 -1
- package/Animations/animationGroup.js +0 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroup.pure.js +2 -0
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +11 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.pure.js +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
- package/AudioV2/abstractAudio/abstractSound.js +7 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
- package/AudioV2/abstractAudio/staticSound.js +17 -1
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
- package/AudioV2/abstractAudio/streamingSound.js +9 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Bones/bone.pure.js +3 -3
- package/Buffers/buffer.pure.js +0 -12
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +239 -203
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
- package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
- package/Cameras/VR/vrExperienceHelper.js +0 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
- package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1559 -1479
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/camera.pure.js +1225 -1178
- package/Cameras/camera.pure.js.map +1 -1
- package/Cameras/flyCamera.pure.js +369 -351
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/followCamera.pure.js +229 -192
- package/Cameras/followCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.js +373 -351
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +502 -457
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +7 -0
- package/Cameras/targetCamera.pure.js +550 -509
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/universalCamera.pure.js +98 -85
- package/Cameras/universalCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +111 -4
- package/Collisions/gpuPicker.js +696 -119
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeShader.pure.js +372 -355
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
- package/Decorators/nodeDecorator.d.ts +11 -1
- package/Decorators/nodeDecorator.js +43 -6
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +15 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +7 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +5 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
- package/Engines/abstractEngine.functions.d.ts +8 -2
- package/Engines/abstractEngine.functions.js +12 -4
- package/Engines/abstractEngine.functions.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +20 -1
- package/Engines/abstractEngine.pure.js +21 -134
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +208 -0
- package/Engines/engine.pure.js +0 -15
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +97 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +0 -13
- package/Engines/thinEngine.pure.js +4 -23
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +27 -0
- package/Engines/thinNativeEngine.pure.js +383 -17
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +9 -0
- package/Engines/webgpuEngine.pure.js +7 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/flowGraph.js +9 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +597 -584
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
- package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +11 -0
- package/FlowGraph/serialization.js +11 -1
- package/FlowGraph/serialization.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +715 -693
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.js +529 -519
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.pure.js +428 -413
- package/Layers/glowLayer.pure.js.map +1 -1
- package/Layers/highlightLayer.pure.js +473 -458
- package/Layers/highlightLayer.pure.js.map +1 -1
- package/Layers/selectionOutlineLayer.pure.js +360 -345
- package/Layers/selectionOutlineLayer.pure.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +6 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.pure.js +61 -39
- package/Lights/areaLight.pure.js.map +1 -1
- package/Lights/directionalLight.pure.js +308 -284
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Lights/hemisphericLight.pure.js +123 -104
- package/Lights/hemisphericLight.pure.js.map +1 -1
- package/Lights/light.d.ts +5 -3
- package/Lights/light.js +869 -827
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.pure.js +185 -174
- package/Lights/pointLight.pure.js.map +1 -1
- package/Lights/rectAreaLight.pure.d.ts +17 -0
- package/Lights/rectAreaLight.pure.js +238 -159
- package/Lights/rectAreaLight.pure.js.map +1 -1
- package/Lights/shadowLight.js +280 -268
- package/Lights/shadowLight.js.map +1 -1
- package/Lights/spotLight.pure.js +460 -427
- package/Lights/spotLight.pure.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
- package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +5 -1
- package/Loading/sceneLoader.js +299 -402
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
- package/Materials/Background/backgroundMaterial.pure.js +949 -794
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
- package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
- package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
- package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
- package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
- package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
- package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
- package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
- package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
- package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
- package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.js +1765 -1737
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
- package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
- package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
- package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
- package/Materials/PBR/pbrMaterial.pure.js +1041 -685
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
- package/Materials/PBR/pbrSheenConfiguration.js +314 -270
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
- package/Materials/Textures/HTML/htmlTexture.js +455 -0
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
- package/Materials/Textures/HTML/index.d.ts +4 -0
- package/Materials/Textures/HTML/index.js +5 -0
- package/Materials/Textures/HTML/index.js.map +1 -0
- package/Materials/Textures/HTML/pure.d.ts +5 -0
- package/Materials/Textures/HTML/pure.js +6 -0
- package/Materials/Textures/HTML/pure.js.map +1 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +880 -825
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +0 -1
- package/Materials/Textures/cubeTexture.js +0 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +368 -333
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +0 -1
- package/Materials/Textures/dynamicTexture.js +0 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +2 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +0 -2
- package/Materials/Textures/htmlElementTexture.js +0 -2
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.pure.js +4 -0
- package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -1
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +0 -1
- package/Materials/Textures/multiRenderTarget.js +0 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.pure.js +2 -0
- package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
- package/Materials/Textures/pure.d.ts +1 -0
- package/Materials/Textures/pure.js +1 -0
- package/Materials/Textures/pure.js.map +1 -1
- package/Materials/Textures/texture.pure.js +961 -923
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/videoTexture.pure.d.ts +3 -0
- package/Materials/Textures/videoTexture.pure.js +450 -401
- package/Materials/Textures/videoTexture.pure.js.map +1 -1
- package/Materials/colorCurves.pure.js +510 -477
- package/Materials/colorCurves.pure.js.map +1 -1
- package/Materials/effect.pure.js +0 -7
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/imageProcessing.js +12 -4
- package/Materials/imageProcessing.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.js +647 -587
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
- package/Materials/material.decalMapConfiguration.pure.js +149 -130
- package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +213 -175
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.pure.js +1815 -1721
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialPluginBase.pure.js +270 -249
- package/Materials/materialPluginBase.pure.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +18 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/materialStencilState.js +211 -200
- package/Materials/materialStencilState.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
- package/Materials/meshDebugPluginMaterial.pure.js +397 -275
- package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +32 -32
- package/Materials/standardMaterial.pure.js +1804 -1394
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.color.pure.js +5 -5
- package/Maths/math.functions.js +38 -30
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.vector.pure.js +25 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
- package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
- package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
- package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
- package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
- package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +560 -538
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +473 -458
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2218 -2207
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.js +30 -15
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.js +1665 -1655
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.pure.js +1400 -1372
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/decorators.d.ts +34 -19
- package/Misc/decorators.functions.d.ts +33 -2
- package/Misc/decorators.functions.js +114 -35
- package/Misc/decorators.functions.js.map +1 -1
- package/Misc/decorators.js +96 -68
- package/Misc/decorators.js.map +1 -1
- package/Misc/decorators.serialization.js +47 -40
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/decorators.serializationUtilities.d.ts +24 -0
- package/Misc/decorators.serializationUtilities.js +20 -0
- package/Misc/decorators.serializationUtilities.js.map +1 -0
- package/Misc/dumpTools.pure.js +43 -33
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/fileTools.pure.js +8 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/observable.pure.js +0 -7
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.d.ts +4 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/symbolMetadataPolyfill.d.ts +11 -0
- package/Misc/symbolMetadataPolyfill.js +22 -0
- package/Misc/symbolMetadataPolyfill.js.map +1 -0
- package/Misc/tools.pure.js +2 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Morph/morphTarget.js +382 -365
- package/Morph/morphTarget.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
- package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
- package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/Node/nodeParticleBlock.js +339 -324
- package/Particles/Node/nodeParticleBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +494 -473
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +0 -1
- package/Particles/gpuParticleSystem.js +0 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -3
- package/Particles/gpuParticleSystem.pure.js +27 -16
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particleSystem.pure.js +57 -2
- package/Particles/particleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -1
- package/Particles/thinParticleSystem.js +0 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +2 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.js +2 -0
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v1/physicsImpostor.pure.js +4 -4
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
- package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
- package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
- package/PostProcesses/blurPostProcess.pure.js +127 -115
- package/PostProcesses/blurPostProcess.pure.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
- package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
- package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
- package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.pure.js +96 -84
- package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
- package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
- package/PostProcesses/filterPostProcess.pure.js +66 -54
- package/PostProcesses/filterPostProcess.pure.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
- package/PostProcesses/grainPostProcess.pure.js +82 -70
- package/PostProcesses/grainPostProcess.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +334 -322
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
- package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
- package/PostProcesses/passPostProcess.pure.js +75 -63
- package/PostProcesses/passPostProcess.pure.js.map +1 -1
- package/PostProcesses/postProcess.pure.js +899 -835
- package/PostProcesses/postProcess.pure.js.map +1 -1
- package/PostProcesses/refractionPostProcess.pure.js +114 -87
- package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +86 -74
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.pure.js +82 -70
- package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
- package/Probes/reflectionProbe.pure.js +238 -224
- package/Probes/reflectionProbe.pure.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
- package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +0 -2
- package/Rendering/prePassRenderer.js +0 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +2 -0
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
- package/Rendering/reflectiveShadowMap.pure.js +151 -130
- package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
- package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
- package/Rendering/thinDepthPeelingRenderer.js +0 -1
- package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +17 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +1 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +39 -3
- package/Shaders/picking.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +2 -2
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +22 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
- package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
- package/XR/features/WebXRLayers.pure.d.ts +8 -0
- package/XR/features/WebXRLayers.pure.js +43 -6
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +2 -2
- package/XR/native/nativeXRRenderTarget.js +2 -2
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRExperienceHelper.js +10 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +90 -0
- package/XR/webXRGraphicsBinding.js +85 -0
- package/XR/webXRGraphicsBinding.js.map +1 -0
- package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
- package/XR/webXRLayerRenderTargetTexture.js +30 -0
- package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +14 -0
- package/XR/webXRManagedOutputCanvas.js +24 -5
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
- package/XR/webXRRenderTargetTextureProvider.js +33 -35
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +11 -0
- package/XR/webXRSessionManager.js +37 -0
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +9 -6
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.js +878 -845
- package/node.js.map +1 -1
- package/package.json +8 -14
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
- package/tslib.es6.js +304 -150
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** This file must only contain pure code and pure imports */
|
|
2
|
-
import {
|
|
2
|
+
import { __esDecorate, __runInitializers } from "../tslib.es6.js";
|
|
3
3
|
import { serialize, serializeAsVector3, serializeAsMeshReference } from "../Misc/decorators.js";
|
|
4
4
|
import { Camera } from "./camera.pure.js";
|
|
5
5
|
import { Quaternion, Matrix, Vector3, Vector2, TmpVectors } from "../Maths/math.vector.pure.js";
|
|
@@ -15,537 +15,578 @@ const TmpQuaternion = /*#__PURE__*/ Quaternion.Identity();
|
|
|
15
15
|
* This is the base of the follow, arc rotate cameras and Free camera
|
|
16
16
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/cameras
|
|
17
17
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Define the current direction the camera is moving to
|
|
52
|
-
*/
|
|
53
|
-
this.cameraDirection = new Vector3(0, 0, 0);
|
|
54
|
-
/**
|
|
55
|
-
* Define the current rotation the camera is rotating to
|
|
56
|
-
*/
|
|
57
|
-
this.cameraRotation = new Vector2(0, 0);
|
|
58
|
-
/**
|
|
59
|
-
* When set, the up vector of the camera will be updated by the rotation of the camera
|
|
60
|
-
*/
|
|
61
|
-
this.updateUpVectorFromRotation = false;
|
|
62
|
-
/**
|
|
63
|
-
* Define the current speed of the camera
|
|
64
|
-
*/
|
|
65
|
-
this.speed = 2.0;
|
|
66
|
-
/**
|
|
67
|
-
* Add constraint to the camera to prevent it to move freely in all directions and
|
|
68
|
-
* around all axis.
|
|
69
|
-
*/
|
|
70
|
-
this.noRotationConstraint = false;
|
|
71
|
-
/**
|
|
72
|
-
* Reverses mouselook direction to 'natural' panning as opposed to traditional direct
|
|
73
|
-
* panning
|
|
74
|
-
*/
|
|
75
|
-
this.invertRotation = false;
|
|
76
|
-
/**
|
|
77
|
-
* Speed multiplier for inverse camera panning
|
|
78
|
-
*/
|
|
79
|
-
this.inverseRotationSpeed = 0.2;
|
|
80
|
-
/**
|
|
81
|
-
* @internal
|
|
82
|
-
* @experimental
|
|
83
|
-
* Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
|
|
84
|
-
*/
|
|
85
|
-
this._panningEpsilon = Epsilon;
|
|
86
|
-
/**
|
|
87
|
-
* @internal
|
|
88
|
-
* @experimental
|
|
89
|
-
* Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
|
|
90
|
-
*/
|
|
91
|
-
this._rotationEpsilon = Epsilon;
|
|
92
|
-
/**
|
|
93
|
-
* Define the current target of the camera as an object or a position.
|
|
94
|
-
* Please note that locking a target will disable panning.
|
|
95
|
-
*/
|
|
96
|
-
this.lockedTarget = null;
|
|
97
|
-
this._currentTarget = Vector3.Zero();
|
|
98
|
-
this._initialFocalDistance = 1;
|
|
99
|
-
this._viewMatrix = Matrix.Zero();
|
|
100
|
-
/** @internal */
|
|
101
|
-
this._cameraTransformMatrix = Matrix.Zero();
|
|
102
|
-
/** @internal */
|
|
103
|
-
this._cameraRotationMatrix = Matrix.Zero();
|
|
104
|
-
this._transformedReferencePoint = Vector3.Zero();
|
|
105
|
-
this._deferredPositionUpdate = new Vector3();
|
|
106
|
-
this._deferredRotationQuaternionUpdate = new Quaternion();
|
|
107
|
-
this._deferredRotationUpdate = new Vector3();
|
|
108
|
-
this._deferredUpdated = false;
|
|
109
|
-
this._deferOnly = false;
|
|
110
|
-
this._cachedRotationZ = 0;
|
|
111
|
-
this._cachedQuaternionRotationZ = 0;
|
|
112
|
-
this._referencePoint = Vector3.Forward(this.getScene().useRightHandedSystem);
|
|
113
|
-
// Set the y component of the rotation to Math.PI in right-handed system for backwards compatibility.
|
|
114
|
-
this.rotation = new Vector3(0, this.getScene().useRightHandedSystem ? Math.PI : 0, 0);
|
|
115
|
-
this.movement = new TargetCameraMovement(this.getScene(), this.position);
|
|
116
|
-
// Seed movement-system inertia from the value set during base/subclass construction.
|
|
117
|
-
// After this point, the `inertia` setter on this class pushes directly to movement.
|
|
118
|
-
this.movement.panInertia = this.inertia;
|
|
119
|
-
this.movement.rotationInertia = this.inertia;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Gets the position in front of the camera at a given distance.
|
|
123
|
-
* @param distance The distance from the camera we want the position to be
|
|
124
|
-
* @returns the position
|
|
125
|
-
*/
|
|
126
|
-
getFrontPosition(distance) {
|
|
127
|
-
this.getWorldMatrix();
|
|
128
|
-
const worldForward = TmpVectors.Vector3[0];
|
|
129
|
-
const localForward = TmpVectors.Vector3[1];
|
|
130
|
-
localForward.set(0, 0, this._scene.useRightHandedSystem ? -1.0 : 1.0);
|
|
131
|
-
this.getDirectionToRef(localForward, worldForward);
|
|
132
|
-
worldForward.scaleInPlace(distance);
|
|
133
|
-
return this.globalPosition.add(worldForward);
|
|
134
|
-
}
|
|
135
|
-
/** @internal */
|
|
136
|
-
_getLockedTargetPosition() {
|
|
137
|
-
if (!this.lockedTarget) {
|
|
138
|
-
return null;
|
|
139
|
-
}
|
|
140
|
-
if (this.lockedTarget.absolutePosition) {
|
|
141
|
-
const lockedTarget = this.lockedTarget;
|
|
142
|
-
const m = lockedTarget.computeWorldMatrix();
|
|
143
|
-
// in some cases the absolute position resets externally, but doesn't update since the matrix is cached.
|
|
144
|
-
m.getTranslationToRef(lockedTarget.absolutePosition);
|
|
145
|
-
}
|
|
146
|
-
return this.lockedTarget.absolutePosition || this.lockedTarget;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Store current camera state of the camera (fov, position, rotation, etc..)
|
|
150
|
-
* @returns the camera
|
|
151
|
-
*/
|
|
152
|
-
storeState() {
|
|
153
|
-
this._storedPosition = this.position.clone();
|
|
154
|
-
this._storedRotation = this.rotation.clone();
|
|
155
|
-
if (this.rotationQuaternion) {
|
|
156
|
-
this._storedRotationQuaternion = this.rotationQuaternion.clone();
|
|
157
|
-
}
|
|
158
|
-
return super.storeState();
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Restored camera state. You must call storeState() first
|
|
162
|
-
* @returns whether it was successful or not
|
|
163
|
-
* @internal
|
|
164
|
-
*/
|
|
165
|
-
_restoreStateValues() {
|
|
166
|
-
if (!super._restoreStateValues()) {
|
|
167
|
-
return false;
|
|
168
|
-
}
|
|
169
|
-
this.position = this._storedPosition.clone();
|
|
170
|
-
this.rotation = this._storedRotation.clone();
|
|
171
|
-
if (this.rotationQuaternion && this._storedRotationQuaternion) {
|
|
172
|
-
this.rotationQuaternion = this._storedRotationQuaternion.clone();
|
|
173
|
-
}
|
|
174
|
-
this.cameraDirection.copyFromFloats(0, 0, 0);
|
|
175
|
-
this.cameraRotation.copyFromFloats(0, 0);
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
/** @internal */
|
|
179
|
-
_initCache() {
|
|
180
|
-
super._initCache();
|
|
181
|
-
this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
182
|
-
this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
183
|
-
this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* @internal
|
|
187
|
-
*/
|
|
188
|
-
_updateCache(ignoreParentClass) {
|
|
189
|
-
if (!ignoreParentClass) {
|
|
190
|
-
super._updateCache();
|
|
191
|
-
}
|
|
192
|
-
const lockedTargetPosition = this._getLockedTargetPosition();
|
|
193
|
-
if (!lockedTargetPosition) {
|
|
194
|
-
this._cache.lockedTarget = null;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
if (!this._cache.lockedTarget) {
|
|
198
|
-
this._cache.lockedTarget = lockedTargetPosition.clone();
|
|
18
|
+
let TargetCamera = (() => {
|
|
19
|
+
var _a;
|
|
20
|
+
let _classSuper = Camera;
|
|
21
|
+
let _updateUpVectorFromRotation_decorators;
|
|
22
|
+
let _updateUpVectorFromRotation_initializers = [];
|
|
23
|
+
let _updateUpVectorFromRotation_extraInitializers = [];
|
|
24
|
+
let _rotation_decorators;
|
|
25
|
+
let _rotation_initializers = [];
|
|
26
|
+
let _rotation_extraInitializers = [];
|
|
27
|
+
let _speed_decorators;
|
|
28
|
+
let _speed_initializers = [];
|
|
29
|
+
let _speed_extraInitializers = [];
|
|
30
|
+
let _lockedTarget_decorators;
|
|
31
|
+
let _lockedTarget_initializers = [];
|
|
32
|
+
let _lockedTarget_extraInitializers = [];
|
|
33
|
+
return _a = class TargetCamera extends _classSuper {
|
|
34
|
+
/**
|
|
35
|
+
* Defines the inertia (decay coefficient applied per reference frame at 60fps) of the camera.
|
|
36
|
+
* This helps giving a smooth feeling to the camera movement.
|
|
37
|
+
*
|
|
38
|
+
* Override of {@link Camera.inertia} that writes through to the {@link movement} system so the
|
|
39
|
+
* framerate-independent pan/rotation glide stays in sync. Setting this updates the movement
|
|
40
|
+
* system immediately (matching the accessor convergence used by {@link ArcRotateCamera}).
|
|
41
|
+
*
|
|
42
|
+
* Backed by a local field rather than `super.inertia`: the shipped UMD bundle is compiled with
|
|
43
|
+
* TypeScript at `target: ES5`, and ES5 downleveling of `super` access inside a decorated accessor
|
|
44
|
+
* (the base {@link Camera.inertia} carries `@serialize()`) mis-compiles to `undefined`. That would
|
|
45
|
+
* feed `NaN` into the movement decay and freeze the camera. It only breaks in the ES5 UMD bundle;
|
|
46
|
+
* native-ESM dev keeps real `super`. See the `babylonjs/no-super-in-accessor` lint rule.
|
|
47
|
+
*/
|
|
48
|
+
get inertia() {
|
|
49
|
+
return this._targetInertia;
|
|
199
50
|
}
|
|
200
|
-
|
|
201
|
-
this.
|
|
51
|
+
set inertia(value) {
|
|
52
|
+
this._targetInertia = value;
|
|
53
|
+
// `movement` is constructed in this class' constructor; guard for the base-constructor
|
|
54
|
+
// assignment that runs before it exists.
|
|
55
|
+
if (this.movement) {
|
|
56
|
+
this.movement.panInertia = value;
|
|
57
|
+
this.movement.rotationInertia = value;
|
|
58
|
+
}
|
|
202
59
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
this.
|
|
60
|
+
/**
|
|
61
|
+
* Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.
|
|
62
|
+
* This is the base of the follow, arc rotate cameras and Free camera
|
|
63
|
+
* @see https://doc.babylonjs.com/features/featuresDeepDive/cameras
|
|
64
|
+
* @param name Defines the name of the camera in the scene
|
|
65
|
+
* @param position Defines the start position of the camera in the scene
|
|
66
|
+
* @param scene Defines the scene the camera belongs to
|
|
67
|
+
* @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined
|
|
68
|
+
*/
|
|
69
|
+
constructor(name, position, scene, setActiveOnSceneIfNoneActive = true) {
|
|
70
|
+
super(name, position, scene, setActiveOnSceneIfNoneActive);
|
|
71
|
+
/**
|
|
72
|
+
* Define the current direction the camera is moving to
|
|
73
|
+
*/
|
|
74
|
+
this.cameraDirection = new Vector3(0, 0, 0);
|
|
75
|
+
/**
|
|
76
|
+
* Define the current rotation the camera is rotating to
|
|
77
|
+
*/
|
|
78
|
+
this.cameraRotation = new Vector2(0, 0);
|
|
79
|
+
this._targetInertia = 0.9;
|
|
80
|
+
/**
|
|
81
|
+
* When set, the up vector of the camera will be updated by the rotation of the camera
|
|
82
|
+
*/
|
|
83
|
+
this.updateUpVectorFromRotation = __runInitializers(this, _updateUpVectorFromRotation_initializers, false);
|
|
84
|
+
/**
|
|
85
|
+
* Define the current rotation of the camera
|
|
86
|
+
*/
|
|
87
|
+
this.rotation = (__runInitializers(this, _updateUpVectorFromRotation_extraInitializers), __runInitializers(this, _rotation_initializers, void 0));
|
|
88
|
+
/**
|
|
89
|
+
* Define the current rotation of the camera as a quaternion to prevent Gimbal lock
|
|
90
|
+
*/
|
|
91
|
+
this.rotationQuaternion = __runInitializers(this, _rotation_extraInitializers);
|
|
92
|
+
/**
|
|
93
|
+
* Define the current speed of the camera
|
|
94
|
+
*/
|
|
95
|
+
this.speed = __runInitializers(this, _speed_initializers, 2.0);
|
|
96
|
+
/**
|
|
97
|
+
* Add constraint to the camera to prevent it to move freely in all directions and
|
|
98
|
+
* around all axis.
|
|
99
|
+
*/
|
|
100
|
+
this.noRotationConstraint = (__runInitializers(this, _speed_extraInitializers), false);
|
|
101
|
+
/**
|
|
102
|
+
* Reverses mouselook direction to 'natural' panning as opposed to traditional direct
|
|
103
|
+
* panning
|
|
104
|
+
*/
|
|
105
|
+
this.invertRotation = false;
|
|
106
|
+
/**
|
|
107
|
+
* Speed multiplier for inverse camera panning
|
|
108
|
+
*/
|
|
109
|
+
this.inverseRotationSpeed = 0.2;
|
|
110
|
+
/**
|
|
111
|
+
* @internal
|
|
112
|
+
* @experimental
|
|
113
|
+
* Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
|
|
114
|
+
*/
|
|
115
|
+
this._panningEpsilon = Epsilon;
|
|
116
|
+
/**
|
|
117
|
+
* @internal
|
|
118
|
+
* @experimental
|
|
119
|
+
* Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
|
|
120
|
+
*/
|
|
121
|
+
this._rotationEpsilon = Epsilon;
|
|
122
|
+
/**
|
|
123
|
+
* Define the current target of the camera as an object or a position.
|
|
124
|
+
* Please note that locking a target will disable panning.
|
|
125
|
+
*/
|
|
126
|
+
this.lockedTarget = __runInitializers(this, _lockedTarget_initializers, null);
|
|
127
|
+
this._currentTarget = (__runInitializers(this, _lockedTarget_extraInitializers), Vector3.Zero());
|
|
128
|
+
this._initialFocalDistance = 1;
|
|
129
|
+
this._viewMatrix = Matrix.Zero();
|
|
130
|
+
/** @internal */
|
|
131
|
+
this._cameraTransformMatrix = Matrix.Zero();
|
|
132
|
+
/** @internal */
|
|
133
|
+
this._cameraRotationMatrix = Matrix.Zero();
|
|
134
|
+
this._transformedReferencePoint = Vector3.Zero();
|
|
135
|
+
this._deferredPositionUpdate = new Vector3();
|
|
136
|
+
this._deferredRotationQuaternionUpdate = new Quaternion();
|
|
137
|
+
this._deferredRotationUpdate = new Vector3();
|
|
138
|
+
this._deferredUpdated = false;
|
|
139
|
+
this._deferOnly = false;
|
|
140
|
+
this._cachedRotationZ = 0;
|
|
141
|
+
this._cachedQuaternionRotationZ = 0;
|
|
142
|
+
this._referencePoint = Vector3.Forward(this.getScene().useRightHandedSystem);
|
|
143
|
+
// Set the y component of the rotation to Math.PI in right-handed system for backwards compatibility.
|
|
144
|
+
this.rotation = new Vector3(0, this.getScene().useRightHandedSystem ? Math.PI : 0, 0);
|
|
145
|
+
this.movement = new TargetCameraMovement(this.getScene(), this.position);
|
|
146
|
+
// Seed movement-system inertia from the value set during base/subclass construction.
|
|
147
|
+
// After this point, the `inertia` setter on this class pushes directly to movement.
|
|
148
|
+
this.movement.panInertia = this.inertia;
|
|
149
|
+
this.movement.rotationInertia = this.inertia;
|
|
282
150
|
}
|
|
283
|
-
|
|
284
|
-
|
|
151
|
+
/**
|
|
152
|
+
* Gets the position in front of the camera at a given distance.
|
|
153
|
+
* @param distance The distance from the camera we want the position to be
|
|
154
|
+
* @returns the position
|
|
155
|
+
*/
|
|
156
|
+
getFrontPosition(distance) {
|
|
157
|
+
this.getWorldMatrix();
|
|
158
|
+
const worldForward = TmpVectors.Vector3[0];
|
|
159
|
+
const localForward = TmpVectors.Vector3[1];
|
|
160
|
+
localForward.set(0, 0, this._scene.useRightHandedSystem ? -1.0 : 1.0);
|
|
161
|
+
this.getDirectionToRef(localForward, worldForward);
|
|
162
|
+
worldForward.scaleInPlace(distance);
|
|
163
|
+
return this.globalPosition.add(worldForward);
|
|
285
164
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
// Fold this frame's raw input — written to `cameraDirection`/`cameraRotation` by the input
|
|
299
|
-
// classes (and honored from direct external writes) — into the movement system, then let it
|
|
300
|
-
// produce framerate-independent per-frame deltas (input plus inertial glide). The applied
|
|
301
|
-
// delta is written back into `cameraDirection`/`cameraRotation` purely as a within-frame
|
|
302
|
-
// hand-off so the collision, gravity, and rotation-constraint logic below reads it unchanged.
|
|
303
|
-
// Both fields are reset to 0 at the end of this method (the inertial glide now lives in the
|
|
304
|
-
// movement system's velocity, not in these fields), so external code polling them *after*
|
|
305
|
-
// `_checkInputs()` reads 0 rather than the legacy residual glide value.
|
|
306
|
-
const movement = this.movement;
|
|
307
|
-
movement.panAccumulatedPixels.addInPlace(this.cameraDirection);
|
|
308
|
-
movement.rotationAccumulatedPixels.x += this.cameraRotation.x;
|
|
309
|
-
movement.rotationAccumulatedPixels.y += this.cameraRotation.y;
|
|
310
|
-
movement.computeCurrentFrameDeltas();
|
|
311
|
-
this.cameraDirection.copyFrom(movement.panDeltaCurrentFrame);
|
|
312
|
-
this.cameraRotation.set(movement.rotationDeltaCurrentFrame.x, movement.rotationDeltaCurrentFrame.y);
|
|
313
|
-
// Backward-compat glide cutoff: honor the legacy `_panningEpsilon` / `_rotationEpsilon` knobs.
|
|
314
|
-
// Legacy `_checkInputs` snapped `cameraDirection`/`cameraRotation` to 0 once a component fell
|
|
315
|
-
// below `speed * _panningEpsilon` / `speed * _rotationEpsilon`, ending inertial glide at that
|
|
316
|
-
// threshold. The framerate-independent port moved glide into the movement system's velocity, so
|
|
317
|
-
// we mirror that cutoff here: when this frame's emitted glide delta is below the legacy limit,
|
|
318
|
-
// zero the delta AND reset the movement velocity so glide terminates at the same point (and the
|
|
319
|
-
// public knobs stay meaningful). Active drags produce deltas well above the limit, so this only
|
|
320
|
-
// triggers on the decaying tail.
|
|
321
|
-
const inertialPanningLimit = this.speed * this._panningEpsilon;
|
|
322
|
-
if (Math.abs(this.cameraDirection.x) < inertialPanningLimit &&
|
|
323
|
-
Math.abs(this.cameraDirection.y) < inertialPanningLimit &&
|
|
324
|
-
Math.abs(this.cameraDirection.z) < inertialPanningLimit) {
|
|
325
|
-
this.cameraDirection.setAll(0);
|
|
326
|
-
movement.resetPanVelocity();
|
|
327
|
-
}
|
|
328
|
-
const inertialRotationLimit = this.speed * this._rotationEpsilon;
|
|
329
|
-
if (Math.abs(this.cameraRotation.x) < inertialRotationLimit && Math.abs(this.cameraRotation.y) < inertialRotationLimit) {
|
|
330
|
-
this.cameraRotation.set(0, 0);
|
|
331
|
-
movement.resetRotationVelocity();
|
|
332
|
-
}
|
|
333
|
-
const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;
|
|
334
|
-
const needToMove = this._decideIfNeedsToMove();
|
|
335
|
-
const needToRotate = !!(this.cameraRotation.x || this.cameraRotation.y);
|
|
336
|
-
this._deferredUpdated = false;
|
|
337
|
-
this._deferredRotationUpdate.copyFrom(this.rotation);
|
|
338
|
-
this._deferredPositionUpdate.copyFrom(this.position);
|
|
339
|
-
if (this.rotationQuaternion) {
|
|
340
|
-
this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);
|
|
341
|
-
}
|
|
342
|
-
// Move
|
|
343
|
-
if (needToMove) {
|
|
344
|
-
this._updatePosition();
|
|
345
|
-
}
|
|
346
|
-
// Rotate
|
|
347
|
-
if (needToRotate) {
|
|
348
|
-
//rotate, if quaternion is set and rotation was used
|
|
349
|
-
if (this.rotationQuaternion) {
|
|
350
|
-
this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);
|
|
165
|
+
/** @internal */
|
|
166
|
+
_getLockedTargetPosition() {
|
|
167
|
+
if (!this.lockedTarget) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
if (this.lockedTarget.absolutePosition) {
|
|
171
|
+
const lockedTarget = this.lockedTarget;
|
|
172
|
+
const m = lockedTarget.computeWorldMatrix();
|
|
173
|
+
// in some cases the absolute position resets externally, but doesn't update since the matrix is cached.
|
|
174
|
+
m.getTranslationToRef(lockedTarget.absolutePosition);
|
|
175
|
+
}
|
|
176
|
+
return this.lockedTarget.absolutePosition || this.lockedTarget;
|
|
351
177
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Store current camera state of the camera (fov, position, rotation, etc..)
|
|
180
|
+
* @returns the camera
|
|
181
|
+
*/
|
|
182
|
+
storeState() {
|
|
183
|
+
this._storedPosition = this.position.clone();
|
|
184
|
+
this._storedRotation = this.rotation.clone();
|
|
185
|
+
if (this.rotationQuaternion) {
|
|
186
|
+
this._storedRotationQuaternion = this.rotationQuaternion.clone();
|
|
359
187
|
}
|
|
360
|
-
|
|
361
|
-
|
|
188
|
+
return super.storeState();
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Restored camera state. You must call storeState() first
|
|
192
|
+
* @returns whether it was successful or not
|
|
193
|
+
* @internal
|
|
194
|
+
*/
|
|
195
|
+
_restoreStateValues() {
|
|
196
|
+
if (!super._restoreStateValues()) {
|
|
197
|
+
return false;
|
|
362
198
|
}
|
|
199
|
+
this.position = this._storedPosition.clone();
|
|
200
|
+
this.rotation = this._storedRotation.clone();
|
|
201
|
+
if (this.rotationQuaternion && this._storedRotationQuaternion) {
|
|
202
|
+
this.rotationQuaternion = this._storedRotationQuaternion.clone();
|
|
203
|
+
}
|
|
204
|
+
this.cameraDirection.copyFromFloats(0, 0, 0);
|
|
205
|
+
this.cameraRotation.copyFromFloats(0, 0);
|
|
206
|
+
return true;
|
|
363
207
|
}
|
|
364
|
-
|
|
365
|
-
|
|
208
|
+
/** @internal */
|
|
209
|
+
_initCache() {
|
|
210
|
+
super._initCache();
|
|
211
|
+
this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
212
|
+
this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
213
|
+
this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
|
|
366
214
|
}
|
|
367
|
-
|
|
368
|
-
|
|
215
|
+
/**
|
|
216
|
+
* @internal
|
|
217
|
+
*/
|
|
218
|
+
_updateCache(ignoreParentClass) {
|
|
219
|
+
if (!ignoreParentClass) {
|
|
220
|
+
super._updateCache();
|
|
221
|
+
}
|
|
222
|
+
const lockedTargetPosition = this._getLockedTargetPosition();
|
|
223
|
+
if (!lockedTargetPosition) {
|
|
224
|
+
this._cache.lockedTarget = null;
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
if (!this._cache.lockedTarget) {
|
|
228
|
+
this._cache.lockedTarget = lockedTargetPosition.clone();
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
this._cache.lockedTarget.copyFrom(lockedTargetPosition);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
this._cache.rotation.copyFrom(this.rotation);
|
|
235
|
+
if (this.rotationQuaternion) {
|
|
236
|
+
this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Synchronized
|
|
240
|
+
/** @internal */
|
|
241
|
+
_isSynchronizedViewMatrix() {
|
|
242
|
+
if (!super._isSynchronizedViewMatrix()) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
const lockedTargetPosition = this._getLockedTargetPosition();
|
|
246
|
+
return ((this._cache.lockedTarget ? this._cache.lockedTarget.equals(lockedTargetPosition) : !lockedTargetPosition) &&
|
|
247
|
+
(this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation)));
|
|
248
|
+
}
|
|
249
|
+
// Methods
|
|
250
|
+
/** @internal */
|
|
251
|
+
_computeLocalCameraSpeed() {
|
|
252
|
+
const engine = this.getEngine();
|
|
253
|
+
return this.speed * Math.sqrt(engine.getDeltaTime() / (engine.getFps() * 100.0));
|
|
254
|
+
}
|
|
255
|
+
// Target
|
|
256
|
+
/**
|
|
257
|
+
* Defines the target the camera should look at.
|
|
258
|
+
* @param target Defines the new target as a Vector
|
|
259
|
+
*/
|
|
260
|
+
setTarget(target) {
|
|
261
|
+
this.upVector.normalize();
|
|
262
|
+
this._initialFocalDistance = target.subtract(this.position).length();
|
|
263
|
+
if (this.position.z === target.z) {
|
|
264
|
+
this.position.z += Epsilon;
|
|
265
|
+
}
|
|
266
|
+
if (this._initialFocalDistance < Epsilon) {
|
|
267
|
+
this._initialFocalDistance = 1;
|
|
268
|
+
}
|
|
269
|
+
this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance);
|
|
270
|
+
if (this.getScene().useRightHandedSystem) {
|
|
271
|
+
Matrix.LookAtRHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
Matrix.LookAtLHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
|
|
275
|
+
}
|
|
276
|
+
TmpMatrix.invert();
|
|
277
|
+
const rotationQuaternion = this.rotationQuaternion || TmpQuaternion;
|
|
278
|
+
Quaternion.FromRotationMatrixToRef(TmpMatrix, rotationQuaternion);
|
|
279
|
+
rotationQuaternion.toEulerAnglesToRef(this.rotation);
|
|
280
|
+
// Explicitly set z to 0 to match previous behavior.
|
|
281
|
+
this.rotation.z = 0;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Defines the target point of the camera.
|
|
285
|
+
* The camera looks towards it form the radius distance.
|
|
286
|
+
*/
|
|
287
|
+
get target() {
|
|
288
|
+
return this.getTarget();
|
|
369
289
|
}
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
290
|
+
set target(value) {
|
|
291
|
+
this.setTarget(value);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Return the current target position of the camera. This value is expressed in local space.
|
|
295
|
+
* @returns the target position
|
|
296
|
+
*/
|
|
297
|
+
getTarget() {
|
|
298
|
+
return this._currentTarget;
|
|
299
|
+
}
|
|
300
|
+
/** @internal */
|
|
301
|
+
_decideIfNeedsToMove() {
|
|
302
|
+
return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
|
|
303
|
+
}
|
|
304
|
+
/** @internal */
|
|
305
|
+
_updatePosition() {
|
|
306
|
+
if (this.parent) {
|
|
307
|
+
this.parent.getWorldMatrix().invertToRef(TmpVectors.Matrix[0]);
|
|
308
|
+
Vector3.TransformNormalToRef(this.cameraDirection, TmpVectors.Matrix[0], TmpVectors.Vector3[0]);
|
|
309
|
+
this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0]);
|
|
375
310
|
if (!this._deferOnly) {
|
|
376
|
-
this.
|
|
311
|
+
this.position.copyFrom(this._deferredPositionUpdate);
|
|
377
312
|
}
|
|
378
313
|
else {
|
|
379
314
|
this._deferredUpdated = true;
|
|
380
315
|
}
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
318
|
+
this._deferredPositionUpdate.addInPlace(this.cameraDirection);
|
|
319
|
+
if (!this._deferOnly) {
|
|
320
|
+
this.position.copyFrom(this._deferredPositionUpdate);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
this._deferredUpdated = true;
|
|
381
324
|
}
|
|
382
325
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
326
|
+
/** @internal */
|
|
327
|
+
_checkInputs() {
|
|
328
|
+
// Fold this frame's raw input — written to `cameraDirection`/`cameraRotation` by the input
|
|
329
|
+
// classes (and honored from direct external writes) — into the movement system, then let it
|
|
330
|
+
// produce framerate-independent per-frame deltas (input plus inertial glide). The applied
|
|
331
|
+
// delta is written back into `cameraDirection`/`cameraRotation` purely as a within-frame
|
|
332
|
+
// hand-off so the collision, gravity, and rotation-constraint logic below reads it unchanged.
|
|
333
|
+
// Both fields are reset to 0 at the end of this method (the inertial glide now lives in the
|
|
334
|
+
// movement system's velocity, not in these fields), so external code polling them *after*
|
|
335
|
+
// `_checkInputs()` reads 0 rather than the legacy residual glide value.
|
|
336
|
+
const movement = this.movement;
|
|
337
|
+
// Capture whether there is raw input on the pan channel THIS frame, before it is folded into the
|
|
338
|
+
// movement system. This gates the legacy panning cutoff below so it only ends a decaying inertial
|
|
339
|
+
// tail and never discards a small but legitimate active-input delta.
|
|
340
|
+
const hasPanInput = this.cameraDirection.x !== 0 || this.cameraDirection.y !== 0 || this.cameraDirection.z !== 0;
|
|
341
|
+
movement.panAccumulatedPixels.addInPlace(this.cameraDirection);
|
|
342
|
+
movement.rotationAccumulatedPixels.x += this.cameraRotation.x;
|
|
343
|
+
movement.rotationAccumulatedPixels.y += this.cameraRotation.y;
|
|
344
|
+
movement.computeCurrentFrameDeltas();
|
|
345
|
+
this.cameraDirection.copyFrom(movement.panDeltaCurrentFrame);
|
|
346
|
+
this.cameraRotation.set(movement.rotationDeltaCurrentFrame.x, movement.rotationDeltaCurrentFrame.y);
|
|
347
|
+
// Backward-compat glide cutoff: honor the legacy `_panningEpsilon` knob for translation.
|
|
348
|
+
// Legacy `_checkInputs` snapped `cameraDirection` to 0 once the glide fell below the threshold,
|
|
349
|
+
// ending the inertial glide at that point. The framerate-independent port moved glide into the
|
|
350
|
+
// movement system's velocity, so we mirror that cutoff here and reset the velocity so the glide
|
|
351
|
+
// terminates at the same point (and the public knob stays meaningful). This is gated on
|
|
352
|
+
// `!hasPanInput` so it only fires on the decaying tail: on an active-input frame the emitted
|
|
353
|
+
// delta is always applied, even when it is below the limit. Translation magnitude scales with
|
|
354
|
+
// `this.speed` (inputs use `_computeLocalCameraSpeed`), so the panning cutoff is scaled by
|
|
355
|
+
// `speed` too, keeping the glide *duration* independent of speed.
|
|
356
|
+
const inertialPanningLimit = this.speed * this._panningEpsilon;
|
|
357
|
+
if (!hasPanInput &&
|
|
358
|
+
Math.abs(this.cameraDirection.x) < inertialPanningLimit &&
|
|
359
|
+
Math.abs(this.cameraDirection.y) < inertialPanningLimit &&
|
|
360
|
+
Math.abs(this.cameraDirection.z) < inertialPanningLimit) {
|
|
361
|
+
this.cameraDirection.setAll(0);
|
|
362
|
+
movement.resetPanVelocity();
|
|
363
|
+
}
|
|
364
|
+
// Rotation has no legacy per-frame-delta cutoff: the movement system already terminates the
|
|
365
|
+
// glide via its own framerate-independent velocity epsilon, so `cameraRotation` is naturally 0
|
|
366
|
+
// once the rotation velocity decays. Applying a coarse `_rotationEpsilon` snap on top truncated
|
|
367
|
+
// the inertia tail and reintroduced framerate dependence (the snap tests a per-frame delta, which
|
|
368
|
+
// shrinks at high refresh rates), producing a visible "cut" in the glide that was worst at high
|
|
369
|
+
// speeds and high frame rates (forum 61001). Deferring entirely to the velocity epsilon gives the
|
|
370
|
+
// same smooth ease-out at every `speed` and refresh rate.
|
|
371
|
+
const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;
|
|
372
|
+
const needToMove = this._decideIfNeedsToMove();
|
|
373
|
+
const needToRotate = !!(this.cameraRotation.x || this.cameraRotation.y);
|
|
374
|
+
this._deferredUpdated = false;
|
|
375
|
+
this._deferredRotationUpdate.copyFrom(this.rotation);
|
|
376
|
+
this._deferredPositionUpdate.copyFrom(this.position);
|
|
377
|
+
if (this.rotationQuaternion) {
|
|
378
|
+
this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);
|
|
379
|
+
}
|
|
380
|
+
// Move
|
|
381
|
+
if (needToMove) {
|
|
382
|
+
this._updatePosition();
|
|
383
|
+
}
|
|
384
|
+
// Rotate
|
|
385
|
+
if (needToRotate) {
|
|
386
|
+
//rotate, if quaternion is set and rotation was used
|
|
387
|
+
if (this.rotationQuaternion) {
|
|
388
|
+
this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);
|
|
389
|
+
}
|
|
390
|
+
this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier;
|
|
391
|
+
this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier;
|
|
392
|
+
// Apply constraints
|
|
393
|
+
if (!this.noRotationConstraint) {
|
|
394
|
+
const limit = 1.570796;
|
|
395
|
+
if (this._deferredRotationUpdate.x > limit) {
|
|
396
|
+
this._deferredRotationUpdate.x = limit;
|
|
397
|
+
}
|
|
398
|
+
if (this._deferredRotationUpdate.x < -limit) {
|
|
399
|
+
this._deferredRotationUpdate.x = -limit;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
if (!this._deferOnly) {
|
|
403
|
+
this.rotation.copyFrom(this._deferredRotationUpdate);
|
|
404
|
+
}
|
|
405
|
+
else {
|
|
406
|
+
this._deferredUpdated = true;
|
|
407
|
+
}
|
|
408
|
+
//rotate, if quaternion is set and rotation was used
|
|
409
|
+
if (this.rotationQuaternion) {
|
|
410
|
+
const len = this._deferredRotationUpdate.lengthSquared();
|
|
411
|
+
if (len) {
|
|
412
|
+
Quaternion.RotationYawPitchRollToRef(this._deferredRotationUpdate.y, this._deferredRotationUpdate.x, this._deferredRotationUpdate.z, this._deferredRotationQuaternionUpdate);
|
|
413
|
+
if (!this._deferOnly) {
|
|
414
|
+
this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate);
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
this._deferredUpdated = true;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
// The movement system now owns inertial decay (framerate-independent), so reset the
|
|
423
|
+
// per-frame delta surfaces. Glide persists inside the movement velocity and is re-emitted
|
|
424
|
+
// next frame via `computeCurrentFrameDeltas`; zeroing here prevents the just-applied delta
|
|
425
|
+
// from being re-folded into the accumulators on the next frame.
|
|
426
|
+
this.cameraDirection.setAll(0);
|
|
427
|
+
this.cameraRotation.set(0, 0);
|
|
428
|
+
super._checkInputs();
|
|
430
429
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
430
|
+
_updateCameraRotationMatrix() {
|
|
431
|
+
if (this.rotationQuaternion) {
|
|
432
|
+
this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix);
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
Matrix.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);
|
|
436
|
+
}
|
|
434
437
|
}
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
}
|
|
443
|
-
else {
|
|
444
|
-
Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);
|
|
445
|
-
}
|
|
446
|
-
if (this.parent) {
|
|
447
|
-
const parentWorldMatrix = this.parent.getWorldMatrix();
|
|
448
|
-
this._viewMatrix.invert();
|
|
449
|
-
this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);
|
|
450
|
-
this._viewMatrix.invert();
|
|
451
|
-
this._markSyncedWithParent();
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* @internal
|
|
456
|
-
*/
|
|
457
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
458
|
-
createRigCamera(name, cameraIndex) {
|
|
459
|
-
if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
|
|
460
|
-
const rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());
|
|
461
|
-
rigCamera.isRigCamera = true;
|
|
462
|
-
rigCamera.rigParent = this;
|
|
463
|
-
if (this.cameraRigMode === Camera.RIG_MODE_VR) {
|
|
464
|
-
if (!this.rotationQuaternion) {
|
|
465
|
-
this.rotationQuaternion = new Quaternion();
|
|
466
|
-
}
|
|
467
|
-
rigCamera._cameraRigParams = {};
|
|
468
|
-
rigCamera.rotationQuaternion = new Quaternion();
|
|
438
|
+
/**
|
|
439
|
+
* Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)
|
|
440
|
+
* @returns the current camera
|
|
441
|
+
*/
|
|
442
|
+
_rotateUpVectorWithCameraRotationMatrix() {
|
|
443
|
+
Vector3.TransformNormalToRef(Vector3.UpReadOnly, this._cameraRotationMatrix, this.upVector);
|
|
444
|
+
return this;
|
|
469
445
|
}
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
446
|
+
/** @internal */
|
|
447
|
+
_getViewMatrix() {
|
|
448
|
+
if (this.lockedTarget) {
|
|
449
|
+
this.setTarget(this._getLockedTargetPosition());
|
|
450
|
+
}
|
|
451
|
+
// Compute
|
|
452
|
+
this._updateCameraRotationMatrix();
|
|
453
|
+
// Apply the changed rotation to the upVector
|
|
454
|
+
if (this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z) {
|
|
455
|
+
this._rotateUpVectorWithCameraRotationMatrix();
|
|
456
|
+
this._cachedQuaternionRotationZ = this.rotationQuaternion.z;
|
|
457
|
+
}
|
|
458
|
+
else if (this._cachedRotationZ !== this.rotation.z) {
|
|
459
|
+
this._rotateUpVectorWithCameraRotationMatrix();
|
|
460
|
+
this._cachedRotationZ = this.rotation.z;
|
|
461
|
+
}
|
|
462
|
+
Vector3.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint);
|
|
463
|
+
// Computing target and final matrix
|
|
464
|
+
this.position.addToRef(this._transformedReferencePoint, this._currentTarget);
|
|
465
|
+
if (this.updateUpVectorFromRotation) {
|
|
466
|
+
if (this.rotationQuaternion) {
|
|
467
|
+
Axis.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector);
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
Quaternion.FromEulerVectorToRef(this.rotation, TmpQuaternion);
|
|
471
|
+
Axis.Y.rotateByQuaternionToRef(TmpQuaternion, this.upVector);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
this._computeViewMatrix(this.position, this._currentTarget, this.upVector);
|
|
475
|
+
return this._viewMatrix;
|
|
498
476
|
}
|
|
499
|
-
|
|
500
|
-
if (
|
|
501
|
-
|
|
502
|
-
camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);
|
|
477
|
+
_computeViewMatrix(position, target, up) {
|
|
478
|
+
if (this.getScene().useRightHandedSystem) {
|
|
479
|
+
Matrix.LookAtRHToRef(position, target, up, this._viewMatrix);
|
|
503
480
|
}
|
|
504
481
|
else {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
482
|
+
Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);
|
|
483
|
+
}
|
|
484
|
+
if (this.parent) {
|
|
485
|
+
const parentWorldMatrix = this.parent.getWorldMatrix();
|
|
486
|
+
this._viewMatrix.invert();
|
|
487
|
+
this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);
|
|
488
|
+
this._viewMatrix.invert();
|
|
489
|
+
this._markSyncedWithParent();
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* @internal
|
|
494
|
+
*/
|
|
495
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
496
|
+
createRigCamera(name, cameraIndex) {
|
|
497
|
+
if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
|
|
498
|
+
const rigCamera = new _a(name, this.position.clone(), this.getScene());
|
|
499
|
+
rigCamera.isRigCamera = true;
|
|
500
|
+
rigCamera.rigParent = this;
|
|
501
|
+
if (this.cameraRigMode === Camera.RIG_MODE_VR) {
|
|
502
|
+
if (!this.rotationQuaternion) {
|
|
503
|
+
this.rotationQuaternion = new Quaternion();
|
|
504
|
+
}
|
|
505
|
+
rigCamera._cameraRigParams = {};
|
|
506
|
+
rigCamera.rotationQuaternion = new Quaternion();
|
|
507
|
+
}
|
|
508
|
+
rigCamera.mode = this.mode;
|
|
509
|
+
rigCamera.orthoLeft = this.orthoLeft;
|
|
510
|
+
rigCamera.orthoRight = this.orthoRight;
|
|
511
|
+
rigCamera.orthoTop = this.orthoTop;
|
|
512
|
+
rigCamera.orthoBottom = this.orthoBottom;
|
|
513
|
+
return rigCamera;
|
|
514
|
+
}
|
|
515
|
+
return null;
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* @internal
|
|
519
|
+
*/
|
|
520
|
+
_updateRigCameras() {
|
|
521
|
+
const camLeft = this._rigCameras[0];
|
|
522
|
+
const camRight = this._rigCameras[1];
|
|
523
|
+
this.computeWorldMatrix();
|
|
524
|
+
switch (this.cameraRigMode) {
|
|
525
|
+
case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
|
|
526
|
+
case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
|
|
527
|
+
case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
|
|
528
|
+
case Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER:
|
|
529
|
+
case Camera.RIG_MODE_STEREOSCOPIC_INTERLACED: {
|
|
530
|
+
//provisionnaly using _cameraRigParams.stereoHalfAngle instead of calculations based on _cameraRigParams.interaxialDistance:
|
|
531
|
+
const leftSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1;
|
|
532
|
+
const rightSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;
|
|
533
|
+
this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * leftSign, camLeft);
|
|
534
|
+
this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * rightSign, camRight);
|
|
535
|
+
break;
|
|
536
|
+
}
|
|
537
|
+
case Camera.RIG_MODE_VR:
|
|
538
|
+
if (camLeft.rotationQuaternion && camRight.rotationQuaternion && this.rotationQuaternion) {
|
|
539
|
+
camLeft.rotationQuaternion.copyFrom(this.rotationQuaternion);
|
|
540
|
+
camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
camLeft.rotation.copyFrom(this.rotation);
|
|
544
|
+
camRight.rotation.copyFrom(this.rotation);
|
|
545
|
+
}
|
|
546
|
+
camLeft.position.copyFrom(this.position);
|
|
547
|
+
camRight.position.copyFrom(this.position);
|
|
548
|
+
break;
|
|
549
|
+
}
|
|
550
|
+
super._updateRigCameras();
|
|
551
|
+
}
|
|
552
|
+
_getRigCamPositionAndTarget(halfSpace, rigCamera) {
|
|
553
|
+
const target = this.getTarget();
|
|
554
|
+
target.subtractToRef(this.position, _a._TargetFocalPoint);
|
|
555
|
+
_a._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);
|
|
556
|
+
const newFocalTarget = _a._TargetFocalPoint.addInPlace(this.position);
|
|
557
|
+
Matrix.TranslationToRef(-newFocalTarget.x, -newFocalTarget.y, -newFocalTarget.z, _a._TargetTransformMatrix);
|
|
558
|
+
_a._TargetTransformMatrix.multiplyToRef(Matrix.RotationAxis(rigCamera.upVector, halfSpace), _a._RigCamTransformMatrix);
|
|
559
|
+
Matrix.TranslationToRef(newFocalTarget.x, newFocalTarget.y, newFocalTarget.z, _a._TargetTransformMatrix);
|
|
560
|
+
_a._RigCamTransformMatrix.multiplyToRef(_a._TargetTransformMatrix, _a._RigCamTransformMatrix);
|
|
561
|
+
Vector3.TransformCoordinatesToRef(this.position, _a._RigCamTransformMatrix, rigCamera.position);
|
|
562
|
+
rigCamera.setTarget(newFocalTarget);
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Gets the current object class name.
|
|
566
|
+
* @returns the class name
|
|
567
|
+
*/
|
|
568
|
+
getClassName() {
|
|
569
|
+
return "TargetCamera";
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
(() => {
|
|
573
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
574
|
+
_updateUpVectorFromRotation_decorators = [serialize()];
|
|
575
|
+
_rotation_decorators = [serializeAsVector3()];
|
|
576
|
+
_speed_decorators = [serialize()];
|
|
577
|
+
_lockedTarget_decorators = [serializeAsMeshReference("lockedTargetId")];
|
|
578
|
+
__esDecorate(null, null, _updateUpVectorFromRotation_decorators, { kind: "field", name: "updateUpVectorFromRotation", static: false, private: false, access: { has: obj => "updateUpVectorFromRotation" in obj, get: obj => obj.updateUpVectorFromRotation, set: (obj, value) => { obj.updateUpVectorFromRotation = value; } }, metadata: _metadata }, _updateUpVectorFromRotation_initializers, _updateUpVectorFromRotation_extraInitializers);
|
|
579
|
+
__esDecorate(null, null, _rotation_decorators, { kind: "field", name: "rotation", static: false, private: false, access: { has: obj => "rotation" in obj, get: obj => obj.rotation, set: (obj, value) => { obj.rotation = value; } }, metadata: _metadata }, _rotation_initializers, _rotation_extraInitializers);
|
|
580
|
+
__esDecorate(null, null, _speed_decorators, { kind: "field", name: "speed", static: false, private: false, access: { has: obj => "speed" in obj, get: obj => obj.speed, set: (obj, value) => { obj.speed = value; } }, metadata: _metadata }, _speed_initializers, _speed_extraInitializers);
|
|
581
|
+
__esDecorate(null, null, _lockedTarget_decorators, { kind: "field", name: "lockedTarget", static: false, private: false, access: { has: obj => "lockedTarget" in obj, get: obj => obj.lockedTarget, set: (obj, value) => { obj.lockedTarget = value; } }, metadata: _metadata }, _lockedTarget_initializers, _lockedTarget_extraInitializers);
|
|
582
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
583
|
+
})(),
|
|
584
|
+
_a._RigCamTransformMatrix = new Matrix(),
|
|
585
|
+
_a._TargetTransformMatrix = new Matrix(),
|
|
586
|
+
_a._TargetFocalPoint = new Vector3(),
|
|
587
|
+
_a;
|
|
588
|
+
})();
|
|
589
|
+
export { TargetCamera };
|
|
549
590
|
let _Registered = false;
|
|
550
591
|
/**
|
|
551
592
|
* Register side effects for targetCamera.
|