@babylonjs/core 5.24.0 → 5.26.0
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/Actions/action.d.ts +12 -21
- package/Actions/action.js +8 -17
- package/Actions/action.js.map +1 -1
- package/Actions/actionManager.d.ts +2 -5
- package/Actions/actionManager.js +2 -5
- package/Actions/actionManager.js.map +1 -1
- package/Actions/condition.d.ts +9 -50
- package/Actions/condition.js +3 -26
- package/Actions/condition.js.map +1 -1
- package/Actions/directActions.d.ts +7 -7
- package/Actions/directActions.js +7 -7
- package/Actions/directActions.js.map +1 -1
- package/Actions/directAudioActions.d.ts +2 -2
- package/Actions/directAudioActions.js +2 -2
- package/Actions/directAudioActions.js.map +1 -1
- package/Actions/interpolateValueAction.d.ts +1 -1
- package/Actions/interpolateValueAction.js +1 -1
- package/Actions/interpolateValueAction.js.map +1 -1
- package/Animations/animatable.d.ts +5 -6
- package/Animations/animatable.js +1 -2
- package/Animations/animatable.js.map +1 -1
- package/Animations/animation.d.ts +6 -20
- package/Animations/animation.js +6 -20
- package/Animations/animation.js.map +1 -1
- package/Animations/animationEvent.d.ts +1 -1
- package/Animations/animationEvent.js +1 -1
- package/Animations/animationEvent.js.map +1 -1
- package/Animations/animationGroup.d.ts +1 -1
- package/Animations/animationGroup.js +1 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/easing.d.ts +13 -26
- package/Animations/easing.js +13 -26
- package/Animations/easing.js.map +1 -1
- package/Animations/runtimeAnimation.d.ts +3 -4
- package/Animations/runtimeAnimation.js +1 -2
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioEngine.js +1 -2
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +1 -1
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +3 -4
- package/Audio/sound.js +2 -3
- package/Audio/sound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
- package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +5 -5
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/followBehavior.d.ts +1 -1
- package/Behaviors/Meshes/followBehavior.js +1 -1
- package/Behaviors/Meshes/followBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +7 -9
- package/Bones/bone.js +7 -9
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +6 -8
- package/Bones/skeleton.js +6 -8
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.d.ts +6 -6
- package/Buffers/buffer.js +14 -16
- package/Buffers/buffer.js.map +1 -1
- package/Buffers/storageBuffer.d.ts +1 -1
- package/Buffers/storageBuffer.js +1 -1
- package/Buffers/storageBuffer.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -2
- package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +6 -3
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +18 -5
- package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
- package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js +1 -2
- package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
- package/Cameras/RigModes/vrRigMode.d.ts +1 -3
- package/Cameras/RigModes/vrRigMode.js +1 -3
- package/Cameras/RigModes/vrRigMode.js.map +1 -1
- package/Cameras/RigModes/webVRRigMode.d.ts +1 -3
- package/Cameras/RigModes/webVRRigMode.js +1 -3
- package/Cameras/RigModes/webVRRigMode.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +2 -3
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrCameraMetrics.d.ts +4 -4
- package/Cameras/VR/vrCameraMetrics.js +4 -4
- package/Cameras/VR/vrCameraMetrics.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.js +20 -48
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +9 -9
- package/Cameras/VR/webVRCamera.js +9 -9
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +11 -12
- package/Cameras/arcRotateCamera.js +8 -9
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +29 -38
- package/Cameras/camera.js +27 -36
- package/Cameras/camera.js.map +1 -1
- package/Cameras/deviceOrientationCamera.d.ts +1 -1
- package/Cameras/deviceOrientationCamera.js +1 -1
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +8 -12
- package/Cameras/flyCamera.js +6 -10
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/followCamera.d.ts +2 -2
- package/Cameras/followCamera.js +2 -2
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/freeCamera.d.ts +6 -7
- package/Cameras/freeCamera.js +4 -5
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/freeCameraInputsManager.d.ts +2 -2
- package/Cameras/freeCameraInputsManager.js +2 -2
- package/Cameras/freeCameraInputsManager.js.map +1 -1
- package/Cameras/targetCamera.d.ts +21 -24
- package/Cameras/targetCamera.js +20 -23
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +1 -1
- package/Cameras/touchCamera.js +1 -1
- package/Cameras/touchCamera.js.map +1 -1
- package/Collisions/collider.d.ts +13 -44
- package/Collisions/collider.js +10 -41
- package/Collisions/collider.js.map +1 -1
- package/Collisions/collisionCoordinator.d.ts +2 -2
- package/Collisions/collisionCoordinator.js +1 -1
- package/Collisions/collisionCoordinator.js.map +1 -1
- package/Collisions/intersectionInfo.d.ts +1 -1
- package/Collisions/intersectionInfo.js +1 -1
- package/Collisions/intersectionInfo.js.map +1 -1
- package/Collisions/meshCollisionData.d.ts +1 -1
- package/Collisions/meshCollisionData.js +1 -1
- package/Collisions/meshCollisionData.js.map +1 -1
- package/Collisions/pickingInfo.d.ts +1 -1
- package/Collisions/pickingInfo.js +1 -1
- package/Collisions/pickingInfo.js.map +1 -1
- package/Compute/IComputeContext.d.ts +1 -1
- package/Compute/IComputeContext.js.map +1 -1
- package/Compute/IComputePipelineContext.d.ts +2 -2
- package/Compute/IComputePipelineContext.js.map +1 -1
- package/Compute/computeEffect.d.ts +5 -5
- package/Compute/computeEffect.js +5 -5
- package/Compute/computeEffect.js.map +1 -1
- package/Culling/Octrees/octreeBlock.d.ts +1 -9
- package/Culling/Octrees/octreeBlock.js +1 -9
- package/Culling/Octrees/octreeBlock.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +2 -2
- package/Culling/Octrees/octreeSceneComponent.js +1 -5
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/boundingBox.d.ts +4 -5
- package/Culling/boundingBox.js +3 -4
- package/Culling/boundingBox.js.map +1 -1
- package/Culling/boundingInfo.d.ts +1 -2
- package/Culling/boundingInfo.js +1 -2
- package/Culling/boundingInfo.js.map +1 -1
- package/Culling/boundingSphere.d.ts +1 -2
- package/Culling/boundingSphere.js +1 -2
- package/Culling/boundingSphere.js.map +1 -1
- package/Culling/ray.d.ts +6 -6
- package/Culling/ray.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +6 -6
- package/Debug/physicsViewer.js +4 -4
- package/Debug/physicsViewer.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js +1 -1
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js +3 -3
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/internalDeviceSourceManager.d.ts +3 -3
- package/DeviceInput/internalDeviceSourceManager.js +1 -1
- package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
- package/DeviceInput/nativeDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js +1 -1
- package/DeviceInput/nativeDeviceInputSystem.js.map +1 -1
- package/DeviceInput/webDeviceInputSystem.d.ts +1 -1
- package/DeviceInput/webDeviceInputSystem.js +1 -19
- package/DeviceInput/webDeviceInputSystem.js.map +1 -1
- package/Engines/Extensions/engine.computeShader.d.ts +7 -7
- package/Engines/Extensions/engine.computeShader.js +1 -1
- package/Engines/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +6 -6
- package/Engines/Extensions/engine.cubeTexture.js +3 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.debugging.d.ts +4 -4
- package/Engines/Extensions/engine.debugging.js.map +1 -1
- package/Engines/Extensions/engine.multiview.d.ts +9 -9
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +22 -22
- package/Engines/Extensions/engine.query.js +8 -8
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.rawTexture.js +3 -7
- package/Engines/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/Extensions/engine.readTexture.d.ts +2 -2
- package/Engines/Extensions/engine.readTexture.js.map +1 -1
- package/Engines/Extensions/engine.renderTarget.d.ts +2 -2
- package/Engines/Extensions/engine.renderTarget.js.map +1 -1
- package/Engines/Extensions/engine.textureSelector.d.ts +2 -2
- package/Engines/Extensions/engine.textureSelector.js.map +1 -1
- package/Engines/Extensions/engine.transformFeedback.d.ts +1 -1
- package/Engines/Extensions/engine.transformFeedback.js +1 -1
- package/Engines/Extensions/engine.transformFeedback.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +2 -2
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Extensions/engine.webVR.d.ts +13 -13
- package/Engines/Extensions/engine.webVR.js.map +1 -1
- package/Engines/IDrawContext.d.ts +1 -1
- package/Engines/IDrawContext.js.map +1 -1
- package/Engines/IMaterialContext.d.ts +1 -1
- package/Engines/IMaterialContext.js.map +1 -1
- package/Engines/IPipelineContext.d.ts +5 -5
- package/Engines/IPipelineContext.js.map +1 -1
- package/Engines/Native/nativeDataStream.d.ts +2 -2
- package/Engines/Native/nativeDataStream.js +1 -1
- package/Engines/Native/nativeDataStream.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +10 -10
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.js.map +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.d.ts +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js +1 -1
- package/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.js.map +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.d.ts +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
- package/Engines/Processors/iShaderProcessor.d.ts +1 -1
- package/Engines/Processors/iShaderProcessor.js.map +1 -1
- package/Engines/Processors/shaderCodeConditionNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js +1 -1
- package/Engines/Processors/shaderCodeConditionNode.js.map +1 -1
- package/Engines/Processors/shaderCodeCursor.d.ts +1 -1
- package/Engines/Processors/shaderCodeCursor.js +1 -1
- package/Engines/Processors/shaderCodeCursor.js.map +1 -1
- package/Engines/Processors/shaderCodeNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeNode.js +1 -1
- package/Engines/Processors/shaderCodeNode.js.map +1 -1
- package/Engines/Processors/shaderCodeTestNode.d.ts +1 -1
- package/Engines/Processors/shaderCodeTestNode.js +1 -1
- package/Engines/Processors/shaderCodeTestNode.js.map +1 -1
- package/Engines/Processors/shaderProcessingOptions.d.ts +2 -2
- package/Engines/Processors/shaderProcessingOptions.js.map +1 -1
- package/Engines/Processors/shaderProcessor.d.ts +2 -2
- package/Engines/Processors/shaderProcessor.js +2 -2
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js +1 -1
- package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
- package/Engines/WebGL/webGLHardwareTexture.d.ts +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js +1 -1
- package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
- package/Engines/WebGL/webGLPipelineContext.d.ts +6 -25
- package/Engines/WebGL/webGLPipelineContext.js +6 -25
- package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
- package/Engines/WebGL/webGLRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js +2 -2
- package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGL/webGLShaderProcessors.d.ts +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js +1 -1
- package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -5
- package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuBufferManager.d.ts +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js +1 -1
- package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
- package/Engines/WebGPU/webgpuBundleList.d.ts +8 -8
- package/Engines/WebGPU/webgpuBundleList.js +7 -7
- package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineString.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +2 -2
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.d.ts +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js +1 -1
- package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.d.ts +2 -2
- package/Engines/WebGPU/webgpuComputePipelineContext.js +1 -1
- package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +38 -38
- package/Engines/WebGPU/webgpuConstants.js +38 -38
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.d.ts +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js +1 -1
- package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.d.ts +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js +1 -1
- package/Engines/WebGPU/webgpuExternalTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +9 -9
- package/Engines/WebGPU/webgpuHardwareTexture.js +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.d.ts +3 -3
- package/Engines/WebGPU/webgpuMaterialContext.js +1 -1
- package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.d.ts +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -1
- package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +4 -4
- package/Engines/WebGPU/webgpuPipelineContext.js +2 -2
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuQuerySet.d.ts +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js +1 -1
- package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.d.ts +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderPassWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.d.ts +2 -2
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js +1 -1
- package/Engines/WebGPU/webgpuRenderTargetWrapper.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +7 -7
- package/Engines/WebGPU/webgpuShaderProcessingContext.js +2 -2
- package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js +1 -1
- package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.d.ts +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js +1 -1
- package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/WebGPU/webgpuTimestampQuery.d.ts +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js +2 -2
- package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
- package/Engines/WebGPU/webgpuTintWASM.d.ts +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js +1 -1
- package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
- package/Engines/constants.d.ts +1 -1
- package/Engines/constants.js +1 -1
- package/Engines/constants.js.map +1 -1
- package/Engines/engine.d.ts +16 -35
- package/Engines/engine.js +19 -69
- package/Engines/engine.js.map +1 -1
- package/Engines/engineFeatures.d.ts +2 -2
- package/Engines/engineFeatures.js.map +1 -1
- package/Engines/engineStore.d.ts +1 -1
- package/Engines/engineStore.js +1 -1
- package/Engines/engineStore.js.map +1 -1
- package/Engines/nativeEngine.d.ts +15 -47
- package/Engines/nativeEngine.js +20 -66
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.d.ts +12 -40
- package/Engines/nullEngine.js +12 -40
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/performanceConfigurator.d.ts +6 -7
- package/Engines/performanceConfigurator.js +6 -7
- package/Engines/performanceConfigurator.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +8 -9
- package/Engines/renderTargetWrapper.js +7 -8
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +90 -187
- package/Engines/thinEngine.js +73 -182
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +89 -145
- package/Engines/webgpuEngine.js +71 -127
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/pointerEvents.d.ts +4 -0
- package/Events/pointerEvents.js +4 -0
- package/Events/pointerEvents.js.map +1 -1
- package/Gamepads/Controllers/oculusTouchController.d.ts +1 -1
- package/Gamepads/Controllers/oculusTouchController.js +1 -1
- package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
- package/Gamepads/Controllers/poseEnabledController.d.ts +9 -10
- package/Gamepads/Controllers/poseEnabledController.js +6 -7
- package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
- package/Gamepads/Controllers/windowsMotionController.d.ts +1 -1
- package/Gamepads/Controllers/windowsMotionController.js +1 -1
- package/Gamepads/Controllers/windowsMotionController.js.map +1 -1
- package/Gamepads/gamepad.d.ts +1 -1
- package/Gamepads/gamepad.js +1 -1
- package/Gamepads/gamepad.js.map +1 -1
- package/Gamepads/gamepadManager.d.ts +2 -2
- package/Gamepads/gamepadManager.js +4 -4
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gamepads/gamepadSceneComponent.d.ts +1 -1
- package/Gamepads/gamepadSceneComponent.js.map +1 -1
- package/Gizmos/axisDragGizmo.d.ts +2 -8
- package/Gizmos/axisDragGizmo.js +2 -8
- package/Gizmos/axisDragGizmo.js.map +1 -1
- package/Gizmos/cameraGizmo.d.ts +1 -1
- package/Gizmos/cameraGizmo.js +1 -1
- package/Gizmos/cameraGizmo.js.map +1 -1
- package/Gizmos/lightGizmo.d.ts +1 -1
- package/Gizmos/lightGizmo.js +1 -1
- package/Gizmos/lightGizmo.js.map +1 -1
- package/Gizmos/planeDragGizmo.d.ts +1 -3
- package/Gizmos/planeDragGizmo.js +1 -3
- package/Gizmos/planeDragGizmo.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +1 -1
- package/Helpers/sceneHelpers.js +1 -1
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +3 -3
- package/Inputs/scene.inputManager.js +5 -4
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/timeToken.d.ts +1 -1
- package/Instrumentation/timeToken.js +1 -1
- package/Instrumentation/timeToken.js.map +1 -1
- package/Layers/effectLayer.d.ts +2 -3
- package/Layers/effectLayer.js +2 -3
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +1 -1
- package/Layers/highlightLayer.js +1 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +8 -1
- package/Layers/layer.js +12 -1
- package/Layers/layer.js.map +1 -1
- package/Layers/layerSceneComponent.d.ts +4 -2
- package/Layers/layerSceneComponent.js +27 -11
- package/Layers/layerSceneComponent.js.map +1 -1
- package/LensFlares/lensFlare.d.ts +1 -1
- package/LensFlares/lensFlare.js.map +1 -1
- package/LensFlares/lensFlareSystem.d.ts +4 -6
- package/LensFlares/lensFlareSystem.js +4 -6
- package/LensFlares/lensFlareSystem.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js +1 -2
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.d.ts +1 -2
- package/Lights/Shadows/shadowGenerator.js +1 -2
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/light.d.ts +9 -9
- package/Lights/light.js +6 -6
- package/Lights/light.js.map +1 -1
- package/Lights/shadowLight.d.ts +3 -3
- package/Lights/shadowLight.js +3 -3
- package/Lights/shadowLight.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.d.ts +1 -1
- package/Loading/Plugins/babylonFileLoader.js +1 -1
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/loadingScreen.js +6 -6
- package/Loading/loadingScreen.js.map +1 -1
- package/Materials/Background/backgroundMaterial.js +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +18 -18
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.d.ts +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js +4 -11
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +2 -2
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +9 -9
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +12 -12
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +2 -2
- package/Materials/Node/nodeMaterial.js +2 -2
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.d.ts +8 -14
- package/Materials/Node/nodeMaterialBlock.js +6 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +8 -8
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js +7 -7
- package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +22 -58
- package/Materials/Node/nodeMaterialBuildState.js +21 -57
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +2 -2
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrBRDFConfiguration.js +2 -2
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +65 -65
- package/Materials/PBR/pbrBaseMaterial.js +65 -65
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +4 -4
- package/Materials/PBR/pbrClearCoatConfiguration.js +3 -3
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrSheenConfiguration.js +2 -2
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +6 -6
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +5 -5
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.d.ts +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -1
- package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js +1 -1
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.d.ts +6 -7
- package/Materials/Textures/Procedurals/proceduralTexture.js +4 -5
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +17 -23
- package/Materials/Textures/baseTexture.js +20 -23
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +1 -1
- package/Materials/Textures/cubeTexture.js +1 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/hardwareTextureWrapper.d.ts +1 -1
- package/Materials/Textures/hardwareTextureWrapper.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +35 -37
- package/Materials/Textures/internalTexture.js +34 -36
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -3
- package/Materials/Textures/multiRenderTarget.js +1 -3
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +9 -9
- package/Materials/Textures/prePassRenderTarget.js +6 -6
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +7 -11
- package/Materials/Textures/renderTargetTexture.js +8 -9
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +6 -18
- package/Materials/Textures/texture.js +13 -23
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/textureSampler.d.ts +5 -5
- package/Materials/Textures/textureSampler.js +5 -5
- package/Materials/Textures/textureSampler.js.map +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js +1 -1
- package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
- package/Materials/Textures/thinTexture.d.ts +2 -2
- package/Materials/Textures/thinTexture.js +2 -2
- package/Materials/Textures/thinTexture.js.map +1 -1
- package/Materials/Textures/videoTexture.d.ts +1 -1
- package/Materials/Textures/videoTexture.js +3 -3
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/drawWrapper.d.ts +1 -1
- package/Materials/drawWrapper.js +1 -1
- package/Materials/drawWrapper.js.map +1 -1
- package/Materials/effect.d.ts +17 -17
- package/Materials/effect.js +28 -22
- package/Materials/effect.js.map +1 -1
- package/Materials/effectRenderer.d.ts +1 -1
- package/Materials/effectRenderer.js.map +1 -1
- package/Materials/imageProcessingConfiguration.d.ts +5 -5
- package/Materials/imageProcessingConfiguration.js +4 -4
- package/Materials/imageProcessingConfiguration.js.map +1 -1
- package/Materials/material.d.ts +21 -26
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +2 -2
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.js +22 -24
- package/Materials/material.js.map +1 -1
- package/Materials/materialDefines.d.ts +14 -14
- package/Materials/materialDefines.js +13 -13
- package/Materials/materialDefines.js.map +1 -1
- package/Materials/materialHelper.js +2 -7
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginEvent.d.ts +15 -15
- package/Materials/materialPluginEvent.js +1 -1
- package/Materials/materialPluginEvent.js.map +1 -1
- package/Materials/materialPluginManager.d.ts +2 -4
- package/Materials/materialPluginManager.js +2 -4
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.d.ts +1 -1
- package/Materials/multiMaterial.js +1 -1
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/pushMaterial.d.ts +1 -1
- package/Materials/pushMaterial.js +1 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/standardMaterial.d.ts +3 -3
- package/Materials/standardMaterial.js +3 -3
- package/Materials/standardMaterial.js.map +1 -1
- package/Materials/uniformBuffer.d.ts +4 -4
- package/Materials/uniformBuffer.js +4 -4
- package/Materials/uniformBuffer.js.map +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.d.ts +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js +1 -1
- package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
- package/Maths/math.color.d.ts +1 -1
- package/Maths/math.color.js +1 -1
- package/Maths/math.color.js.map +1 -1
- package/Maths/math.isovector.d.ts +1 -1
- package/Maths/math.isovector.js +1 -1
- package/Maths/math.isovector.js.map +1 -1
- package/Maths/math.like.d.ts +8 -8
- package/Maths/math.like.js.map +1 -1
- package/Maths/math.polar.d.ts +343 -0
- package/Maths/math.polar.js +537 -0
- package/Maths/math.polar.js.map +1 -1
- package/Maths/math.vector.d.ts +58 -24
- package/Maths/math.vector.js +94 -18
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/tubeBuilder.d.ts +2 -2
- package/Meshes/Builders/tubeBuilder.js +2 -2
- package/Meshes/Builders/tubeBuilder.js.map +1 -1
- package/Meshes/WebGL/webGLDataBuffer.d.ts +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js +1 -1
- package/Meshes/WebGL/webGLDataBuffer.js.map +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.d.ts +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js +1 -1
- package/Meshes/WebGPU/webgpuDataBuffer.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +48 -70
- package/Meshes/abstractMesh.js +47 -69
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/buffer.d.ts +1 -1
- package/Meshes/buffer.js +1 -1
- package/Meshes/buffer.js.map +1 -1
- package/Meshes/geodesicMesh.d.ts +15 -28
- package/Meshes/geodesicMesh.js +11 -24
- package/Meshes/geodesicMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +15 -20
- package/Meshes/geometry.js +7 -12
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/groundMesh.d.ts +8 -8
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/instancedMesh.d.ts +12 -16
- package/Meshes/instancedMesh.js +11 -15
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/linesMesh.d.ts +5 -8
- package/Meshes/linesMesh.js +5 -8
- package/Meshes/linesMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +47 -92
- package/Meshes/mesh.js +50 -98
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +3 -18
- package/Meshes/mesh.vertexData.js +3 -18
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
- package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
- package/Meshes/subMesh.d.ts +23 -51
- package/Meshes/subMesh.js +20 -48
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/subMesh.project.d.ts +2 -2
- package/Meshes/subMesh.project.js +2 -12
- package/Meshes/subMesh.project.js.map +1 -1
- package/Meshes/thinInstanceMesh.d.ts +4 -4
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/transformNode.d.ts +8 -9
- package/Meshes/transformNode.js +8 -9
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/arrayTools.d.ts +3 -3
- package/Misc/arrayTools.js +1 -1
- package/Misc/arrayTools.js.map +1 -1
- package/Misc/assetsManager.d.ts +1 -3
- package/Misc/assetsManager.js +1 -3
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -1
- package/Misc/basis.js.map +1 -1
- package/Misc/coroutine.d.ts +11 -25
- package/Misc/coroutine.js +7 -21
- package/Misc/coroutine.js.map +1 -1
- package/Misc/dds.d.ts +1 -10
- package/Misc/dds.js +1 -10
- package/Misc/dds.js.map +1 -1
- package/Misc/decorators.d.ts +5 -15
- package/Misc/decorators.js +6 -16
- package/Misc/decorators.js.map +1 -1
- package/Misc/depthReducer.d.ts +1 -5
- package/Misc/depthReducer.js +1 -5
- package/Misc/depthReducer.js.map +1 -1
- package/Misc/devTools.d.ts +1 -2
- package/Misc/devTools.js +1 -2
- package/Misc/devTools.js.map +1 -1
- package/Misc/environmentTextureTools.d.ts +1 -6
- package/Misc/environmentTextureTools.js +1 -6
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/fileTools.d.ts +12 -24
- package/Misc/fileTools.js +14 -26
- package/Misc/fileTools.js.map +1 -1
- package/Misc/khronosTextureContainer.d.ts +1 -3
- package/Misc/khronosTextureContainer.js +1 -3
- package/Misc/khronosTextureContainer.js.map +1 -1
- package/Misc/khronosTextureContainer2.d.ts +1 -4
- package/Misc/khronosTextureContainer2.js +1 -4
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/observable.d.ts +3 -4
- package/Misc/observable.js +2 -3
- package/Misc/observable.js.map +1 -1
- package/Misc/pivotTools.d.ts +3 -5
- package/Misc/pivotTools.js +3 -5
- package/Misc/pivotTools.js.map +1 -1
- package/Misc/screenshotTools.js +1 -1
- package/Misc/screenshotTools.js.map +1 -1
- package/Misc/tags.d.ts +2 -6
- package/Misc/tags.js +2 -6
- package/Misc/tags.js.map +1 -1
- package/Misc/tga.d.ts +14 -70
- package/Misc/tga.js +14 -70
- package/Misc/tga.js.map +1 -1
- package/Misc/tools.d.ts +9 -0
- package/Misc/tools.js +14 -5
- package/Misc/tools.js.map +1 -1
- package/Misc/typeStore.d.ts +2 -5
- package/Misc/typeStore.js +3 -6
- package/Misc/typeStore.js.map +1 -1
- package/Misc/virtualJoystick.js +0 -1
- package/Misc/virtualJoystick.js.map +1 -1
- package/Misc/webRequest.d.ts +2 -2
- package/Misc/webRequest.js +1 -1
- package/Misc/webRequest.js.map +1 -1
- package/Morph/morphTarget.d.ts +1 -1
- package/Morph/morphTarget.js +1 -1
- package/Morph/morphTarget.js.map +1 -1
- package/Morph/morphTargetManager.d.ts +3 -4
- package/Morph/morphTargetManager.js +2 -3
- package/Morph/morphTargetManager.js.map +1 -1
- package/Particles/IGPUParticleSystemPlatform.d.ts +1 -1
- package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
- package/Particles/IParticleSystem.d.ts +6 -0
- package/Particles/IParticleSystem.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +14 -9
- package/Particles/baseParticleSystem.js +17 -8
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/cloudPoint.d.ts +16 -19
- package/Particles/cloudPoint.js +21 -29
- package/Particles/cloudPoint.js.map +1 -1
- package/Particles/computeShaderParticleSystem.d.ts +1 -1
- package/Particles/computeShaderParticleSystem.js +1 -1
- package/Particles/computeShaderParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +14 -20
- package/Particles/gpuParticleSystem.js +17 -13
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particle.d.ts +30 -31
- package/Particles/particle.js +16 -17
- package/Particles/particle.js.map +1 -1
- package/Particles/particleSystem.d.ts +16 -32
- package/Particles/particleSystem.js +30 -31
- package/Particles/particleSystem.js.map +1 -1
- package/Particles/pointsCloudSystem.d.ts +3 -4
- package/Particles/pointsCloudSystem.js +27 -20
- package/Particles/pointsCloudSystem.js.map +1 -1
- package/Particles/solidParticle.d.ts +21 -31
- package/Particles/solidParticle.js +9 -19
- package/Particles/solidParticle.js.map +1 -1
- package/Particles/solidParticleSystem.d.ts +14 -16
- package/Particles/solidParticleSystem.js +14 -16
- package/Particles/solidParticleSystem.js.map +1 -1
- package/Particles/subEmitter.d.ts +1 -5
- package/Particles/subEmitter.js +1 -5
- package/Particles/subEmitter.js.map +1 -1
- package/Particles/webgl2ParticleSystem.d.ts +1 -1
- package/Particles/webgl2ParticleSystem.js +1 -1
- package/Particles/webgl2ParticleSystem.js.map +1 -1
- package/Physics/IPhysicsEngine.d.ts +1 -1
- package/Physics/IPhysicsEngine.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.d.ts +3 -0
- package/Physics/Plugins/ammoJSPlugin.js +21 -2
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
- package/Physics/Plugins/cannonJSPlugin.js +1 -1
- package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
- package/Physics/Plugins/oimoJSPlugin.d.ts +1 -1
- package/Physics/Plugins/oimoJSPlugin.js +3 -3
- package/Physics/Plugins/oimoJSPlugin.js.map +1 -1
- package/Physics/physicsEngineComponent.d.ts +4 -4
- package/Physics/physicsEngineComponent.js +1 -2
- package/Physics/physicsEngineComponent.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +13 -7
- package/Physics/physicsImpostor.js +9 -6
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.d.ts +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +2 -2
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +2 -4
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +10 -10
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +5 -5
- package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +13 -13
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +7 -14
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js +1 -5
- package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
- package/PostProcesses/bloomEffect.d.ts +4 -4
- package/PostProcesses/bloomEffect.js +3 -3
- package/PostProcesses/bloomEffect.js.map +1 -1
- package/PostProcesses/blurPostProcess.d.ts +1 -5
- package/PostProcesses/blurPostProcess.js +1 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.d.ts +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js +1 -5
- package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.d.ts +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js +1 -5
- package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.d.ts +1 -5
- package/PostProcesses/convolutionPostProcess.js +1 -5
- package/PostProcesses/convolutionPostProcess.js.map +1 -1
- package/PostProcesses/depthOfFieldEffect.d.ts +4 -4
- package/PostProcesses/depthOfFieldEffect.js +3 -3
- package/PostProcesses/depthOfFieldEffect.js.map +1 -1
- package/PostProcesses/displayPassPostProcess.d.ts +1 -5
- package/PostProcesses/displayPassPostProcess.js +1 -5
- package/PostProcesses/displayPassPostProcess.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js +2 -2
- package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
- package/PostProcesses/filterPostProcess.d.ts +1 -5
- package/PostProcesses/filterPostProcess.js +1 -5
- package/PostProcesses/filterPostProcess.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.d.ts +1 -5
- package/PostProcesses/fxaaPostProcess.js +1 -5
- package/PostProcesses/fxaaPostProcess.js.map +1 -1
- package/PostProcesses/grainPostProcess.d.ts +1 -5
- package/PostProcesses/grainPostProcess.js +1 -5
- package/PostProcesses/grainPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.d.ts +1 -5
- package/PostProcesses/motionBlurPostProcess.js +1 -5
- package/PostProcesses/motionBlurPostProcess.js.map +1 -1
- package/PostProcesses/passPostProcess.d.ts +2 -10
- package/PostProcesses/passPostProcess.js +2 -10
- package/PostProcesses/passPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.d.ts +8 -12
- package/PostProcesses/postProcess.js +6 -10
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.d.ts +3 -3
- package/PostProcesses/postProcessManager.js +3 -3
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/PostProcesses/refractionPostProcess.d.ts +1 -5
- package/PostProcesses/refractionPostProcess.js +1 -5
- package/PostProcesses/refractionPostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js +1 -5
- package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -5
- package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.d.ts +1 -5
- package/PostProcesses/sharpenPostProcess.js +1 -5
- package/PostProcesses/sharpenPostProcess.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
- package/Probes/reflectionProbe.d.ts +1 -1
- package/Probes/reflectionProbe.js +1 -1
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/boundingBoxRenderer.d.ts +5 -5
- package/Rendering/boundingBoxRenderer.js +2 -2
- package/Rendering/boundingBoxRenderer.js.map +1 -1
- package/Rendering/depthPeelingSceneComponent.d.ts +2 -2
- package/Rendering/depthPeelingSceneComponent.js.map +1 -1
- package/Rendering/depthRenderer.d.ts +1 -2
- package/Rendering/depthRenderer.js +1 -2
- package/Rendering/depthRenderer.js.map +1 -1
- package/Rendering/depthRendererSceneComponent.d.ts +1 -1
- package/Rendering/depthRendererSceneComponent.js.map +1 -1
- package/Rendering/edgesRenderer.d.ts +2 -2
- package/Rendering/edgesRenderer.js +1 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.d.ts +10 -16
- package/Rendering/geometryBufferRenderer.js +9 -15
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.d.ts +1 -1
- package/Rendering/geometryBufferRendererSceneComponent.js.map +1 -1
- package/Rendering/outlineRenderer.d.ts +3 -3
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +7 -14
- package/Rendering/prePassRenderer.js +8 -15
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRendererSceneComponent.d.ts +2 -2
- package/Rendering/prePassRendererSceneComponent.js.map +1 -1
- package/Rendering/renderingGroup.d.ts +3 -3
- package/Rendering/renderingGroup.js +3 -3
- package/Rendering/renderingGroup.js.map +1 -1
- package/Rendering/renderingManager.d.ts +15 -8
- package/Rendering/renderingManager.js +59 -17
- package/Rendering/renderingManager.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.d.ts +2 -4
- package/Rendering/subSurfaceConfiguration.js +2 -4
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/subSurfaceSceneComponent.d.ts +1 -1
- package/Rendering/subSurfaceSceneComponent.js.map +1 -1
- package/Rendering/utilityLayerRenderer.d.ts +4 -4
- package/Rendering/utilityLayerRenderer.js +15 -10
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js +1 -1
- package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bonesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js +1 -1
- package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js +1 -1
- package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +1 -1
- package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js +1 -1
- package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.d.ts +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +1 -1
- package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/depthPrePass.d.ts +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js +1 -1
- package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.d.ts +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
- package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
- package/Shaders/ShadersInclude/fibonacci.d.ts +1 -1
- package/Shaders/ShadersInclude/fibonacci.js +1 -1
- package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragment.js +1 -1
- package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertex.js +1 -1
- package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js +1 -1
- package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js +1 -1
- package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/helperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js +1 -1
- package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js +1 -1
- package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/importanceSampling.d.ts +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js +1 -1
- package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/instancesVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js +1 -1
- package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js +1 -1
- package/Shaders/ShadersInclude/kernelBlurVertex.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +1 -1
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js +1 -1
- package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js +1 -1
- package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js +1 -1
- package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/mrtFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js +1 -1
- package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/oitFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/oitFragment.js +1 -1
- package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
- package/Shaders/ShadersInclude/packingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js +1 -1
- package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +3 -3
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDebug.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js +1 -1
- package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +2 -2
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.d.ts +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js +1 -1
- package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.d.ts +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js +1 -1
- package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +1 -1
- package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +1 -1
- package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.d.ts +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js +1 -1
- package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.d.ts +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +1 -1
- package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.d.ts +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js +1 -1
- package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.d.ts +1 -1
- package/Shaders/ShadersInclude/vertexColorMixing.js +2 -2
- package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
- package/Shaders/anaglyph.fragment.d.ts +1 -1
- package/Shaders/anaglyph.fragment.js +1 -1
- package/Shaders/anaglyph.fragment.js.map +1 -1
- package/Shaders/background.fragment.d.ts +1 -1
- package/Shaders/background.fragment.js +1 -1
- package/Shaders/background.fragment.js.map +1 -1
- package/Shaders/background.vertex.d.ts +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/blackAndWhite.fragment.d.ts +1 -1
- package/Shaders/blackAndWhite.fragment.js +1 -1
- package/Shaders/blackAndWhite.fragment.js.map +1 -1
- package/Shaders/bloomMerge.fragment.d.ts +1 -1
- package/Shaders/bloomMerge.fragment.js +1 -1
- package/Shaders/bloomMerge.fragment.js.map +1 -1
- package/Shaders/blur.fragment.d.ts +1 -1
- package/Shaders/blur.fragment.js +1 -1
- package/Shaders/blur.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.fragment.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js +1 -1
- package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
- package/Shaders/boundingBoxRenderer.vertex.d.ts +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js +1 -1
- package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
- package/Shaders/chromaticAberration.fragment.d.ts +1 -1
- package/Shaders/chromaticAberration.fragment.js +2 -1
- package/Shaders/chromaticAberration.fragment.js.map +1 -1
- package/Shaders/circleOfConfusion.fragment.d.ts +1 -1
- package/Shaders/circleOfConfusion.fragment.js +1 -1
- package/Shaders/circleOfConfusion.fragment.js.map +1 -1
- package/Shaders/clearQuad.fragment.d.ts +1 -1
- package/Shaders/clearQuad.fragment.js +1 -1
- package/Shaders/clearQuad.fragment.js.map +1 -1
- package/Shaders/clearQuad.vertex.d.ts +1 -1
- package/Shaders/clearQuad.vertex.js +1 -1
- package/Shaders/clearQuad.vertex.js.map +1 -1
- package/Shaders/color.fragment.d.ts +1 -1
- package/Shaders/color.fragment.js +4 -3
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.d.ts +1 -1
- package/Shaders/color.vertex.js +2 -2
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/colorCorrection.fragment.d.ts +1 -1
- package/Shaders/colorCorrection.fragment.js +1 -1
- package/Shaders/colorCorrection.fragment.js.map +1 -1
- package/Shaders/convolution.fragment.d.ts +1 -1
- package/Shaders/convolution.fragment.js +1 -1
- package/Shaders/convolution.fragment.js.map +1 -1
- package/Shaders/default.fragment.d.ts +1 -1
- package/Shaders/default.fragment.js +4 -4
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.d.ts +1 -1
- package/Shaders/default.vertex.js +2 -2
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/depth.fragment.d.ts +1 -1
- package/Shaders/depth.fragment.js +1 -1
- package/Shaders/depth.fragment.js.map +1 -1
- package/Shaders/depth.vertex.d.ts +1 -1
- package/Shaders/depth.vertex.js +1 -1
- package/Shaders/depth.vertex.js.map +1 -1
- package/Shaders/depthBoxBlur.fragment.d.ts +1 -1
- package/Shaders/depthBoxBlur.fragment.js +1 -1
- package/Shaders/depthBoxBlur.fragment.js.map +1 -1
- package/Shaders/depthOfField.fragment.d.ts +1 -1
- package/Shaders/depthOfField.fragment.js +1 -1
- package/Shaders/depthOfField.fragment.js.map +1 -1
- package/Shaders/depthOfFieldMerge.fragment.d.ts +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js +1 -1
- package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
- package/Shaders/displayPass.fragment.d.ts +1 -1
- package/Shaders/displayPass.fragment.js +1 -1
- package/Shaders/displayPass.fragment.js.map +1 -1
- package/Shaders/extractHighlights.fragment.d.ts +1 -1
- package/Shaders/extractHighlights.fragment.js +1 -1
- package/Shaders/extractHighlights.fragment.js.map +1 -1
- package/Shaders/filter.fragment.d.ts +1 -1
- package/Shaders/filter.fragment.js +1 -1
- package/Shaders/filter.fragment.js.map +1 -1
- package/Shaders/fxaa.fragment.d.ts +1 -1
- package/Shaders/fxaa.fragment.js +1 -1
- package/Shaders/fxaa.fragment.js.map +1 -1
- package/Shaders/fxaa.vertex.d.ts +1 -1
- package/Shaders/fxaa.vertex.js +1 -1
- package/Shaders/fxaa.vertex.js.map +1 -1
- package/Shaders/geometry.fragment.d.ts +1 -1
- package/Shaders/geometry.fragment.js +14 -2
- package/Shaders/geometry.fragment.js.map +1 -1
- package/Shaders/geometry.vertex.d.ts +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/glowBlurPostProcess.fragment.d.ts +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js +1 -1
- package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.fragment.d.ts +1 -1
- package/Shaders/glowMapGeneration.fragment.js +1 -1
- package/Shaders/glowMapGeneration.fragment.js.map +1 -1
- package/Shaders/glowMapGeneration.vertex.d.ts +1 -1
- package/Shaders/glowMapGeneration.vertex.js +1 -1
- package/Shaders/glowMapGeneration.vertex.js.map +1 -1
- package/Shaders/glowMapMerge.fragment.d.ts +1 -1
- package/Shaders/glowMapMerge.fragment.js +1 -1
- package/Shaders/glowMapMerge.fragment.js.map +1 -1
- package/Shaders/glowMapMerge.vertex.d.ts +1 -1
- package/Shaders/glowMapMerge.vertex.js +1 -1
- package/Shaders/glowMapMerge.vertex.js.map +1 -1
- package/Shaders/gpuRenderParticles.fragment.d.ts +3 -1
- package/Shaders/gpuRenderParticles.fragment.js +9 -2
- package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
- package/Shaders/gpuRenderParticles.vertex.d.ts +3 -1
- package/Shaders/gpuRenderParticles.vertex.js +5 -1
- package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
- package/Shaders/gpuUpdateParticles.fragment.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js +1 -1
- package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
- package/Shaders/gpuUpdateParticles.vertex.d.ts +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js +1 -1
- package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
- package/Shaders/grain.fragment.d.ts +1 -1
- package/Shaders/grain.fragment.js +1 -1
- package/Shaders/grain.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.fragment.d.ts +1 -1
- package/Shaders/hdrFiltering.fragment.js +1 -1
- package/Shaders/hdrFiltering.fragment.js.map +1 -1
- package/Shaders/hdrFiltering.vertex.d.ts +1 -1
- package/Shaders/hdrFiltering.vertex.js +1 -1
- package/Shaders/hdrFiltering.vertex.js.map +1 -1
- package/Shaders/highlights.fragment.d.ts +1 -1
- package/Shaders/highlights.fragment.js +1 -1
- package/Shaders/highlights.fragment.js.map +1 -1
- package/Shaders/imageProcessing.fragment.d.ts +1 -1
- package/Shaders/imageProcessing.fragment.js +1 -1
- package/Shaders/imageProcessing.fragment.js.map +1 -1
- package/Shaders/kernelBlur.fragment.d.ts +1 -1
- package/Shaders/kernelBlur.fragment.js +1 -1
- package/Shaders/kernelBlur.fragment.js.map +1 -1
- package/Shaders/kernelBlur.vertex.d.ts +1 -1
- package/Shaders/kernelBlur.vertex.js +1 -1
- package/Shaders/kernelBlur.vertex.js.map +1 -1
- package/Shaders/layer.fragment.d.ts +1 -1
- package/Shaders/layer.fragment.js +1 -1
- package/Shaders/layer.fragment.js.map +1 -1
- package/Shaders/layer.vertex.d.ts +1 -1
- package/Shaders/layer.vertex.js +1 -1
- package/Shaders/layer.vertex.js.map +1 -1
- package/Shaders/lensFlare.fragment.d.ts +1 -1
- package/Shaders/lensFlare.fragment.js +1 -1
- package/Shaders/lensFlare.fragment.js.map +1 -1
- package/Shaders/lensFlare.vertex.d.ts +1 -1
- package/Shaders/lensFlare.vertex.js +1 -1
- package/Shaders/lensFlare.vertex.js.map +1 -1
- package/Shaders/lensHighlights.fragment.d.ts +1 -1
- package/Shaders/lensHighlights.fragment.js +1 -1
- package/Shaders/lensHighlights.fragment.js.map +1 -1
- package/Shaders/line.fragment.d.ts +1 -1
- package/Shaders/line.fragment.js +1 -1
- package/Shaders/line.fragment.js.map +1 -1
- package/Shaders/line.vertex.d.ts +1 -1
- package/Shaders/line.vertex.js +1 -1
- package/Shaders/line.vertex.js.map +1 -1
- package/Shaders/minmaxRedux.fragment.d.ts +1 -1
- package/Shaders/minmaxRedux.fragment.js +1 -1
- package/Shaders/minmaxRedux.fragment.js.map +1 -1
- package/Shaders/motionBlur.fragment.d.ts +1 -1
- package/Shaders/motionBlur.fragment.js +1 -1
- package/Shaders/motionBlur.fragment.js.map +1 -1
- package/Shaders/noise.fragment.d.ts +1 -1
- package/Shaders/noise.fragment.js +1 -1
- package/Shaders/noise.fragment.js.map +1 -1
- package/Shaders/oitBackBlend.fragment.d.ts +1 -1
- package/Shaders/oitBackBlend.fragment.js +1 -1
- package/Shaders/oitBackBlend.fragment.js.map +1 -1
- package/Shaders/oitFinal.fragment.d.ts +1 -1
- package/Shaders/oitFinal.fragment.js +1 -1
- package/Shaders/oitFinal.fragment.js.map +1 -1
- package/Shaders/outline.fragment.d.ts +1 -1
- package/Shaders/outline.fragment.js +1 -1
- package/Shaders/outline.fragment.js.map +1 -1
- package/Shaders/outline.vertex.d.ts +1 -1
- package/Shaders/outline.vertex.js +1 -1
- package/Shaders/outline.vertex.js.map +1 -1
- package/Shaders/particles.fragment.d.ts +3 -1
- package/Shaders/particles.fragment.js +9 -2
- package/Shaders/particles.fragment.js.map +1 -1
- package/Shaders/particles.vertex.d.ts +3 -1
- package/Shaders/particles.vertex.js +5 -1
- package/Shaders/particles.vertex.js.map +1 -1
- package/Shaders/pass.fragment.d.ts +1 -1
- package/Shaders/pass.fragment.js +1 -1
- package/Shaders/pass.fragment.js.map +1 -1
- package/Shaders/passCube.fragment.d.ts +1 -1
- package/Shaders/passCube.fragment.js +1 -1
- package/Shaders/passCube.fragment.js.map +1 -1
- package/Shaders/pbr.fragment.d.ts +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.d.ts +1 -1
- package/Shaders/pbr.vertex.js +2 -2
- package/Shaders/pbr.vertex.js.map +1 -1
- package/Shaders/postprocess.vertex.d.ts +1 -1
- package/Shaders/postprocess.vertex.js +1 -1
- package/Shaders/postprocess.vertex.js.map +1 -1
- package/Shaders/procedural.vertex.d.ts +1 -1
- package/Shaders/procedural.vertex.js +1 -1
- package/Shaders/procedural.vertex.js.map +1 -1
- package/Shaders/refraction.fragment.d.ts +1 -1
- package/Shaders/refraction.fragment.js +1 -1
- package/Shaders/refraction.fragment.js.map +1 -1
- package/Shaders/rgbdDecode.fragment.d.ts +1 -1
- package/Shaders/rgbdDecode.fragment.js +1 -1
- package/Shaders/rgbdDecode.fragment.js.map +1 -1
- package/Shaders/rgbdEncode.fragment.d.ts +1 -1
- package/Shaders/rgbdEncode.fragment.js +1 -1
- package/Shaders/rgbdEncode.fragment.js.map +1 -1
- package/Shaders/screenSpaceCurvature.fragment.d.ts +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js +1 -1
- package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
- package/Shaders/screenSpaceReflection.fragment.d.ts +1 -1
- package/Shaders/screenSpaceReflection.fragment.js +1 -1
- package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
- package/Shaders/shadowMap.fragment.d.ts +1 -1
- package/Shaders/shadowMap.fragment.js +1 -1
- package/Shaders/shadowMap.fragment.js.map +1 -1
- package/Shaders/shadowMap.vertex.d.ts +1 -1
- package/Shaders/shadowMap.vertex.js +1 -1
- package/Shaders/shadowMap.vertex.js.map +1 -1
- package/Shaders/sharpen.fragment.d.ts +1 -1
- package/Shaders/sharpen.fragment.js +1 -1
- package/Shaders/sharpen.fragment.js.map +1 -1
- package/Shaders/spriteMap.fragment.d.ts +1 -1
- package/Shaders/spriteMap.fragment.js +1 -1
- package/Shaders/spriteMap.fragment.js.map +1 -1
- package/Shaders/spriteMap.vertex.d.ts +1 -1
- package/Shaders/spriteMap.vertex.js +1 -1
- package/Shaders/spriteMap.vertex.js.map +1 -1
- package/Shaders/sprites.fragment.d.ts +1 -1
- package/Shaders/sprites.fragment.js +1 -1
- package/Shaders/sprites.fragment.js.map +1 -1
- package/Shaders/sprites.vertex.d.ts +1 -1
- package/Shaders/sprites.vertex.js +1 -1
- package/Shaders/sprites.vertex.js.map +1 -1
- package/Shaders/ssao.fragment.d.ts +1 -1
- package/Shaders/ssao.fragment.js +1 -1
- package/Shaders/ssao.fragment.js.map +1 -1
- package/Shaders/ssao2.fragment.d.ts +1 -1
- package/Shaders/ssao2.fragment.js +1 -1
- package/Shaders/ssao2.fragment.js.map +1 -1
- package/Shaders/ssaoCombine.fragment.d.ts +1 -1
- package/Shaders/ssaoCombine.fragment.js +1 -1
- package/Shaders/ssaoCombine.fragment.js.map +1 -1
- package/Shaders/standard.fragment.d.ts +1 -1
- package/Shaders/standard.fragment.js +1 -1
- package/Shaders/standard.fragment.js.map +1 -1
- package/Shaders/stereoscopicInterlace.fragment.d.ts +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js +1 -1
- package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
- package/Shaders/subSurfaceScattering.fragment.d.ts +1 -1
- package/Shaders/subSurfaceScattering.fragment.js +1 -1
- package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
- package/Shaders/tonemap.fragment.d.ts +1 -1
- package/Shaders/tonemap.fragment.js +1 -1
- package/Shaders/tonemap.fragment.js.map +1 -1
- package/Shaders/volumetricLightScattering.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScattering.fragment.js +1 -1
- package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js +1 -1
- package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.d.ts +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js +1 -1
- package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
- package/Shaders/vrDistortionCorrection.fragment.d.ts +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js +1 -1
- package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.d.ts +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js +1 -1
- package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.d.ts +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.d.ts +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.d.ts +4 -0
- package/Sprites/spriteManager.js +2 -0
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteSceneComponent.d.ts +6 -6
- package/Sprites/spriteSceneComponent.js.map +1 -1
- package/Sprites/thinSprite.d.ts +5 -6
- package/Sprites/thinSprite.js +1 -2
- package/Sprites/thinSprite.js.map +1 -1
- package/States/IStencilState.d.ts +1 -1
- package/States/IStencilState.js.map +1 -1
- package/States/alphaCullingState.d.ts +1 -1
- package/States/alphaCullingState.js +1 -1
- package/States/alphaCullingState.js.map +1 -1
- package/States/depthCullingState.d.ts +1 -1
- package/States/depthCullingState.js +1 -1
- package/States/depthCullingState.js.map +1 -1
- package/States/stencilState.d.ts +1 -1
- package/States/stencilState.js +1 -1
- package/States/stencilState.js.map +1 -1
- package/States/stencilStateComposer.d.ts +1 -1
- package/States/stencilStateComposer.js +1 -1
- package/States/stencilStateComposer.js.map +1 -1
- package/XR/features/WebXRControllerPhysics.d.ts +1 -1
- package/XR/features/WebXRControllerPhysics.js +1 -1
- package/XR/features/WebXRControllerPhysics.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.d.ts +3 -6
- package/XR/features/WebXRControllerPointerSelection.js +3 -6
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +2 -2
- package/XR/features/WebXRLayers.js +4 -4
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRNearInteraction.js +2 -2
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.d.ts +3 -4
- package/XR/motionController/webXRAbstractMotionController.js +2 -3
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/native/nativeXRFrame.d.ts +2 -2
- package/XR/native/nativeXRFrame.js +1 -1
- package/XR/native/nativeXRFrame.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +3 -3
- package/XR/native/nativeXRRenderTarget.js +3 -3
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRCamera.d.ts +2 -2
- package/XR/webXRCamera.js +1 -1
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.d.ts +6 -6
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXRExperienceHelper.d.ts +21 -1
- package/XR/webXRExperienceHelper.js +37 -7
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRInputSource.d.ts +1 -1
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRLayerWrapper.d.ts +1 -1
- package/XR/webXRLayerWrapper.js +1 -1
- package/XR/webXRLayerWrapper.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
- package/XR/webXRRenderTargetTextureProvider.js +1 -1
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +1 -2
- package/XR/webXRSessionManager.js +1 -2
- package/XR/webXRSessionManager.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/abstractScene.d.ts +1 -1
- package/abstractScene.js +1 -1
- package/abstractScene.js.map +1 -1
- package/node.d.ts +40 -52
- package/node.js +40 -55
- package/node.js.map +1 -1
- package/package.json +1 -1
- package/scene.d.ts +83 -107
- package/scene.js +94 -108
- package/scene.js.map +1 -1
- package/sceneComponent.d.ts +4 -2
- package/sceneComponent.js +4 -2
- package/sceneComponent.js.map +1 -1
- package/types.d.ts +2 -2
- package/types.js +1 -1
- package/types.js.map +1 -1
|
@@ -224,7 +224,7 @@ export class BaseSixDofDragBehavior {
|
|
|
224
224
|
this._virtualMeshesInfo[pointerId] = this._createVirtualMeshInfo();
|
|
225
225
|
}
|
|
226
226
|
const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];
|
|
227
|
-
const
|
|
227
|
+
const isXRNearPointer = pointerInfo.event.pointerType === "xr-near";
|
|
228
228
|
if (pointerInfo.type == PointerEventTypes.POINTERDOWN) {
|
|
229
229
|
if (!virtualMeshesInfo.dragging &&
|
|
230
230
|
pointerInfo.pickInfo &&
|
|
@@ -232,7 +232,7 @@ export class BaseSixDofDragBehavior {
|
|
|
232
232
|
pointerInfo.pickInfo.pickedMesh &&
|
|
233
233
|
pointerInfo.pickInfo.pickedPoint &&
|
|
234
234
|
pointerInfo.pickInfo.ray &&
|
|
235
|
-
(!
|
|
235
|
+
(!isXRNearPointer || pointerInfo.pickInfo.aimTransform) &&
|
|
236
236
|
pickPredicate(pointerInfo.pickInfo.pickedMesh)) {
|
|
237
237
|
if (!this.allowMultiPointer && this.currentDraggingPointerIds.length > 0) {
|
|
238
238
|
return;
|
|
@@ -245,7 +245,7 @@ export class BaseSixDofDragBehavior {
|
|
|
245
245
|
}
|
|
246
246
|
this._ownerNode.computeWorldMatrix(true);
|
|
247
247
|
const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];
|
|
248
|
-
if (
|
|
248
|
+
if (isXRNearPointer) {
|
|
249
249
|
this._dragging = pointerInfo.pickInfo.originMesh ? this._dragType.NEAR_DRAG : this._dragType.DRAG_WITH_CONTROLLER;
|
|
250
250
|
virtualMeshesInfo.originMesh.position.copyFrom(pointerInfo.pickInfo.aimTransform.position);
|
|
251
251
|
if (this._dragging === this._dragType.NEAR_DRAG && pointerInfo.pickInfo.gripTransform) {
|
|
@@ -268,7 +268,7 @@ export class BaseSixDofDragBehavior {
|
|
|
268
268
|
virtualMeshesInfo.startingPivotPosition.copyFrom(virtualMeshesInfo.pivotMesh.position);
|
|
269
269
|
virtualMeshesInfo.startingOrientation.copyFrom(virtualMeshesInfo.dragMesh.rotationQuaternion);
|
|
270
270
|
virtualMeshesInfo.startingPivotOrientation.copyFrom(virtualMeshesInfo.pivotMesh.rotationQuaternion);
|
|
271
|
-
if (
|
|
271
|
+
if (isXRNearPointer) {
|
|
272
272
|
virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.dragMesh);
|
|
273
273
|
virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.pivotMesh);
|
|
274
274
|
}
|
|
@@ -325,7 +325,7 @@ export class BaseSixDofDragBehavior {
|
|
|
325
325
|
zDragFactor = 0;
|
|
326
326
|
}
|
|
327
327
|
this._ownerNode.computeWorldMatrix(true);
|
|
328
|
-
if (!
|
|
328
|
+
if (!isXRNearPointer) {
|
|
329
329
|
this._pointerUpdate2D(pointerInfo.pickInfo.ray, pointerId, zDragFactor);
|
|
330
330
|
}
|
|
331
331
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseSixDofDragBehavior.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Behaviors/Meshes/baseSixDofDragBehavior.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport type { Behavior } from \"../../Behaviors/behavior\";\r\nimport type { Mesh } from \"../../Meshes/mesh\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { Scene } from \"../../scene\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { PointerInfo } from \"../../Events/pointerEvents\";\r\nimport { PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Vector3, Quaternion, TmpVectors } from \"../../Maths/math.vector\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport { Observable } from \"../../Misc/observable\";\r\nimport type { TransformNode } from \"../../Meshes/transformNode\";\r\nimport type { PickingInfo } from \"../../Collisions/pickingInfo\";\r\nimport { Camera } from \"../../Cameras/camera\";\r\nimport type { Ray } from \"../../Culling/ray\";\r\nimport type { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n\r\n/**\r\n * Data store to track virtual pointers movement\r\n */\r\ntype VirtualMeshInfo = {\r\n dragging: boolean;\r\n moving: boolean;\r\n dragMesh: AbstractMesh;\r\n originMesh: AbstractMesh;\r\n pivotMesh: AbstractMesh;\r\n startingPivotPosition: Vector3;\r\n startingPivotOrientation: Quaternion;\r\n startingPosition: Vector3;\r\n startingOrientation: Quaternion;\r\n lastOriginPosition: Vector3;\r\n lastDragPosition: Vector3;\r\n};\r\n\r\n/**\r\n * Base behavior for six degrees of freedom interactions in XR experiences.\r\n * Creates virtual meshes that are dragged around\r\n * And observables for position/rotation changes\r\n */\r\nexport class BaseSixDofDragBehavior implements Behavior<Mesh> {\r\n protected static _virtualScene: Scene;\r\n private _pointerObserver: Nullable<Observer<PointerInfo>>;\r\n private _attachedToElement: boolean = false;\r\n protected _virtualMeshesInfo: {\r\n [id: number]: VirtualMeshInfo;\r\n } = {};\r\n\r\n private _tmpVector: Vector3 = new Vector3();\r\n private _tmpQuaternion: Quaternion = new Quaternion();\r\n\r\n protected _dragType = {\r\n NONE: 0,\r\n DRAG: 1,\r\n DRAG_WITH_CONTROLLER: 2,\r\n NEAR_DRAG: 3,\r\n };\r\n\r\n protected _scene: Scene;\r\n protected _moving = false;\r\n protected _ownerNode: TransformNode;\r\n protected _dragging = this._dragType.NONE;\r\n\r\n /**\r\n * The list of child meshes that can receive drag events\r\n * If `null`, all child meshes will receive drag event\r\n */\r\n public draggableMeshes: Nullable<AbstractMesh[]> = null;\r\n\r\n /**\r\n * How much faster the object should move when the controller is moving towards it. This is useful to bring objects that are far away from the user to them faster. Set this to 0 to avoid any speed increase. (Default: 3)\r\n */\r\n public zDragFactor = 3;\r\n /**\r\n * The id of the pointer that is currently interacting with the behavior (-1 when no pointer is active)\r\n */\r\n public get currentDraggingPointerId() {\r\n if (this.currentDraggingPointerIds[0] !== undefined) {\r\n return this.currentDraggingPointerIds[0];\r\n }\r\n return -1;\r\n }\r\n\r\n public set currentDraggingPointerId(value: number) {\r\n this.currentDraggingPointerIds[0] = value;\r\n }\r\n\r\n /**\r\n * In case of multipointer interaction, all pointer ids currently active are stored here\r\n */\r\n public currentDraggingPointerIds: number[] = [];\r\n\r\n /**\r\n * Get or set the currentDraggingPointerId\r\n * @deprecated Please use currentDraggingPointerId instead\r\n */\r\n public get currentDraggingPointerID(): number {\r\n return this.currentDraggingPointerId;\r\n }\r\n public set currentDraggingPointerID(currentDraggingPointerID: number) {\r\n this.currentDraggingPointerId = currentDraggingPointerID;\r\n }\r\n /**\r\n /**\r\n * If camera controls should be detached during the drag\r\n */\r\n public detachCameraControls = true;\r\n\r\n /**\r\n * Fires each time a drag starts\r\n */\r\n public onDragStartObservable = new Observable<{ position: Vector3 }>();\r\n /**\r\n * Fires each time a drag happens\r\n */\r\n public onDragObservable = new Observable<{ delta: Vector3; position: Vector3; pickInfo: PickingInfo }>();\r\n /**\r\n * Fires each time a drag ends (eg. mouse release after drag)\r\n */\r\n public onDragEndObservable = new Observable<{}>();\r\n\r\n /**\r\n * Should the behavior allow simultaneous pointers to interact with the owner node.\r\n */\r\n public allowMultiPointer: boolean = true;\r\n\r\n /**\r\n * The name of the behavior\r\n */\r\n public get name(): string {\r\n return \"BaseSixDofDrag\";\r\n }\r\n\r\n /**\r\n * Returns true if the attached mesh is currently moving with this behavior\r\n */\r\n public get isMoving(): boolean {\r\n return this._moving;\r\n }\r\n\r\n /**\r\n * Initializes the behavior\r\n */\r\n public init() {}\r\n\r\n /**\r\n * In the case of multiple active cameras, the cameraToUseForPointers should be used if set instead of active camera\r\n */\r\n private get _pointerCamera() {\r\n if (this._scene.cameraToUseForPointers) {\r\n return this._scene.cameraToUseForPointers;\r\n } else {\r\n return this._scene.activeCamera;\r\n }\r\n }\r\n\r\n private _createVirtualMeshInfo() {\r\n // Setup virtual meshes to be used for dragging without dirtying the existing scene\r\n\r\n const dragMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n dragMesh.rotationQuaternion = new Quaternion();\r\n const originMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n originMesh.rotationQuaternion = new Quaternion();\r\n const pivotMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n pivotMesh.rotationQuaternion = new Quaternion();\r\n\r\n return {\r\n dragging: false,\r\n moving: false,\r\n dragMesh,\r\n originMesh,\r\n pivotMesh,\r\n startingPivotPosition: new Vector3(),\r\n startingPivotOrientation: new Quaternion(),\r\n startingPosition: new Vector3(),\r\n startingOrientation: new Quaternion(),\r\n lastOriginPosition: new Vector3(),\r\n lastDragPosition: new Vector3(),\r\n };\r\n }\r\n\r\n protected _resetVirtualMeshesPosition() {\r\n for (let i = 0; i < this.currentDraggingPointerIds.length; i++) {\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint());\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.rotationQuaternion!.copyFrom(this._ownerNode.rotationQuaternion!);\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPivotPosition.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.position\r\n );\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPivotOrientation.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.rotationQuaternion!\r\n );\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPosition.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].dragMesh.position);\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingOrientation.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].dragMesh.rotationQuaternion!\r\n );\r\n }\r\n }\r\n\r\n private _pointerUpdate2D(ray: Ray, pointerId: number, zDragFactor: number) {\r\n if (this._pointerCamera && this._pointerCamera.cameraRigMode == Camera.RIG_MODE_NONE && !this._pointerCamera._isLeftCamera && !this._pointerCamera._isRightCamera) {\r\n ray.origin.copyFrom(this._pointerCamera!.globalPosition);\r\n zDragFactor = 0;\r\n }\r\n\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n\r\n // Calculate controller drag distance in controller space\r\n const originDragDifference = TmpVectors.Vector3[0];\r\n ray.origin.subtractToRef(virtualMeshesInfo.lastOriginPosition, originDragDifference);\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(ray.origin);\r\n const localOriginDragDifference = -Vector3.Dot(originDragDifference, ray.direction);\r\n\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.pivotMesh);\r\n\r\n this._applyZOffset(virtualMeshesInfo.dragMesh, localOriginDragDifference, zDragFactor);\r\n this._applyZOffset(virtualMeshesInfo.pivotMesh, localOriginDragDifference, zDragFactor);\r\n\r\n // Update the controller position\r\n virtualMeshesInfo.originMesh.position.copyFrom(ray.origin);\r\n const lookAt = TmpVectors.Vector3[0];\r\n ray.origin.addToRef(ray.direction, lookAt);\r\n virtualMeshesInfo.originMesh.lookAt(lookAt);\r\n\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.pivotMesh);\r\n }\r\n\r\n private _pointerUpdateXR(controllerAimTransform: TransformNode, controllerGripTransform: Nullable<TransformNode>, pointerId: number, zDragFactor: number) {\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n virtualMeshesInfo.originMesh.position.copyFrom(controllerAimTransform.position);\r\n if (this._dragging === this._dragType.NEAR_DRAG && controllerGripTransform) {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(controllerGripTransform.rotationQuaternion!);\r\n } else {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(controllerAimTransform.rotationQuaternion!);\r\n }\r\n\r\n virtualMeshesInfo.pivotMesh.computeWorldMatrix(true);\r\n virtualMeshesInfo.dragMesh.computeWorldMatrix(true);\r\n\r\n // Z scaling logic\r\n if (zDragFactor !== 0) {\r\n // Camera.getForwardRay modifies TmpVectors.Vector[0-3], so cache it in advance\r\n const cameraForwardVec = TmpVectors.Vector3[0];\r\n const originDragDirection = TmpVectors.Vector3[1];\r\n cameraForwardVec.copyFrom(this._pointerCamera!.getForwardRay().direction);\r\n virtualMeshesInfo.originMesh.position.subtractToRef(virtualMeshesInfo.lastOriginPosition, originDragDirection);\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(virtualMeshesInfo.originMesh.position);\r\n const controllerDragDistance = originDragDirection.length();\r\n originDragDirection.normalize();\r\n\r\n const cameraToDrag = TmpVectors.Vector3[2];\r\n const controllerToDrag = TmpVectors.Vector3[3];\r\n virtualMeshesInfo.dragMesh.absolutePosition.subtractToRef(this._pointerCamera!.globalPosition, cameraToDrag);\r\n virtualMeshesInfo.dragMesh.absolutePosition.subtractToRef(virtualMeshesInfo.originMesh.position, controllerToDrag);\r\n const controllerToDragDistance = controllerToDrag.length();\r\n cameraToDrag.normalize();\r\n controllerToDrag.normalize();\r\n\r\n const controllerDragScaling = Math.abs(Vector3.Dot(originDragDirection, controllerToDrag)) * Vector3.Dot(originDragDirection, cameraForwardVec);\r\n let zOffsetScaling = controllerDragScaling * zDragFactor * controllerDragDistance * controllerToDragDistance;\r\n\r\n // Prevent pulling the mesh through the controller\r\n const minDistanceFromControllerToDragMesh = 0.01;\r\n if (zOffsetScaling < 0 && minDistanceFromControllerToDragMesh - controllerToDragDistance > zOffsetScaling) {\r\n zOffsetScaling = Math.min(minDistanceFromControllerToDragMesh - controllerToDragDistance, 0);\r\n }\r\n controllerToDrag.scaleInPlace(zOffsetScaling);\r\n\r\n controllerToDrag.addToRef(virtualMeshesInfo.pivotMesh.absolutePosition, this._tmpVector);\r\n virtualMeshesInfo.pivotMesh.setAbsolutePosition(this._tmpVector);\r\n controllerToDrag.addToRef(virtualMeshesInfo.dragMesh.absolutePosition, this._tmpVector);\r\n virtualMeshesInfo.dragMesh.setAbsolutePosition(this._tmpVector);\r\n }\r\n }\r\n\r\n /**\r\n * Attaches the scale behavior the passed in mesh\r\n * @param ownerNode The mesh that will be scaled around once attached\r\n */\r\n public attach(ownerNode: TransformNode): void {\r\n this._ownerNode = ownerNode;\r\n this._scene = this._ownerNode.getScene();\r\n if (!BaseSixDofDragBehavior._virtualScene) {\r\n BaseSixDofDragBehavior._virtualScene = new Scene(this._scene.getEngine(), { virtual: true });\r\n BaseSixDofDragBehavior._virtualScene.detachControl();\r\n }\r\n\r\n const pickPredicate = (m: AbstractMesh) => {\r\n return this._ownerNode === m || (m.isDescendantOf(this._ownerNode) && (!this.draggableMeshes || this.draggableMeshes.indexOf(m) !== -1));\r\n };\r\n\r\n this._pointerObserver = this._scene.onPointerObservable.add((pointerInfo) => {\r\n const pointerId = (<IPointerEvent>pointerInfo.event).pointerId;\r\n if (!this._virtualMeshesInfo[pointerId]) {\r\n this._virtualMeshesInfo[pointerId] = this._createVirtualMeshInfo();\r\n }\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n const isXRPointer = (<IPointerEvent>pointerInfo.event).pointerType === \"xr\";\r\n\r\n if (pointerInfo.type == PointerEventTypes.POINTERDOWN) {\r\n if (\r\n !virtualMeshesInfo.dragging &&\r\n pointerInfo.pickInfo &&\r\n pointerInfo.pickInfo.hit &&\r\n pointerInfo.pickInfo.pickedMesh &&\r\n pointerInfo.pickInfo.pickedPoint &&\r\n pointerInfo.pickInfo.ray &&\r\n (!isXRPointer || pointerInfo.pickInfo.aimTransform) &&\r\n pickPredicate(pointerInfo.pickInfo.pickedMesh)\r\n ) {\r\n if (!this.allowMultiPointer && this.currentDraggingPointerIds.length > 0) {\r\n return;\r\n }\r\n\r\n if (\r\n this._pointerCamera &&\r\n this._pointerCamera.cameraRigMode === Camera.RIG_MODE_NONE &&\r\n !this._pointerCamera._isLeftCamera &&\r\n !this._pointerCamera._isRightCamera\r\n ) {\r\n pointerInfo.pickInfo.ray.origin.copyFrom(this._pointerCamera!.globalPosition);\r\n }\r\n\r\n this._ownerNode.computeWorldMatrix(true);\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n\r\n if (isXRPointer) {\r\n this._dragging = pointerInfo.pickInfo.originMesh ? this._dragType.NEAR_DRAG : this._dragType.DRAG_WITH_CONTROLLER;\r\n virtualMeshesInfo.originMesh.position.copyFrom(pointerInfo.pickInfo.aimTransform!.position);\r\n if (this._dragging === this._dragType.NEAR_DRAG && pointerInfo.pickInfo.gripTransform) {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(pointerInfo.pickInfo.gripTransform.rotationQuaternion!);\r\n } else {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(pointerInfo.pickInfo.aimTransform!.rotationQuaternion!);\r\n }\r\n } else {\r\n this._dragging = this._dragType.DRAG;\r\n virtualMeshesInfo.originMesh.position.copyFrom(pointerInfo.pickInfo.ray.origin);\r\n }\r\n\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(virtualMeshesInfo.originMesh.position);\r\n\r\n virtualMeshesInfo.dragMesh.position.copyFrom(pointerInfo.pickInfo.pickedPoint);\r\n virtualMeshesInfo.lastDragPosition.copyFrom(pointerInfo.pickInfo.pickedPoint);\r\n\r\n virtualMeshesInfo.pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint());\r\n virtualMeshesInfo.pivotMesh.rotationQuaternion!.copyFrom(this._ownerNode.absoluteRotationQuaternion);\r\n\r\n virtualMeshesInfo.startingPosition.copyFrom(virtualMeshesInfo.dragMesh.position);\r\n virtualMeshesInfo.startingPivotPosition.copyFrom(virtualMeshesInfo.pivotMesh.position);\r\n virtualMeshesInfo.startingOrientation.copyFrom(virtualMeshesInfo.dragMesh.rotationQuaternion!);\r\n virtualMeshesInfo.startingPivotOrientation.copyFrom(virtualMeshesInfo.pivotMesh.rotationQuaternion!);\r\n\r\n if (isXRPointer) {\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.pivotMesh);\r\n } else {\r\n virtualMeshesInfo.originMesh.lookAt(virtualMeshesInfo.dragMesh.position);\r\n }\r\n\r\n // Update state\r\n virtualMeshesInfo.dragging = true;\r\n\r\n if (this.currentDraggingPointerIds.indexOf(pointerId) === -1) {\r\n this.currentDraggingPointerIds.push(pointerId);\r\n }\r\n\r\n // Detach camera controls\r\n if (this.detachCameraControls && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n if (this._pointerCamera.inputs && this._pointerCamera.inputs.attachedToElement) {\r\n this._pointerCamera.detachControl();\r\n this._attachedToElement = true;\r\n } else {\r\n this._attachedToElement = false;\r\n }\r\n }\r\n\r\n this._targetDragStart(virtualMeshesInfo.pivotMesh.position, virtualMeshesInfo.pivotMesh.rotationQuaternion!, pointerId);\r\n this.onDragStartObservable.notifyObservers({ position: virtualMeshesInfo.pivotMesh.position });\r\n }\r\n } else if (pointerInfo.type == PointerEventTypes.POINTERUP || pointerInfo.type == PointerEventTypes.POINTERDOUBLETAP) {\r\n const registeredPointerIndex = this.currentDraggingPointerIds.indexOf(pointerId);\r\n\r\n // Update state\r\n virtualMeshesInfo.dragging = false;\r\n\r\n if (registeredPointerIndex !== -1) {\r\n this.currentDraggingPointerIds.splice(registeredPointerIndex, 1);\r\n if (this.currentDraggingPointerIds.length === 0) {\r\n this._moving = false;\r\n this._dragging = this._dragType.NONE;\r\n\r\n // Reattach camera controls\r\n if (this.detachCameraControls && this._attachedToElement && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n this._pointerCamera.attachControl(true);\r\n this._attachedToElement = false;\r\n }\r\n }\r\n\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.pivotMesh);\r\n this._targetDragEnd(pointerId);\r\n this.onDragEndObservable.notifyObservers({});\r\n }\r\n } else if (pointerInfo.type == PointerEventTypes.POINTERMOVE) {\r\n const registeredPointerIndex = this.currentDraggingPointerIds.indexOf(pointerId);\r\n\r\n if (registeredPointerIndex !== -1 && virtualMeshesInfo.dragging && pointerInfo.pickInfo && (pointerInfo.pickInfo.ray || pointerInfo.pickInfo.aimTransform)) {\r\n let zDragFactor = this.zDragFactor;\r\n\r\n // 2 pointer interaction should not have a z axis drag factor\r\n // as well as near interaction\r\n if (this.currentDraggingPointerIds.length > 1 || pointerInfo.pickInfo.originMesh) {\r\n zDragFactor = 0;\r\n }\r\n\r\n this._ownerNode.computeWorldMatrix(true);\r\n if (!isXRPointer) {\r\n this._pointerUpdate2D(pointerInfo.pickInfo.ray!, pointerId, zDragFactor);\r\n } else {\r\n this._pointerUpdateXR(pointerInfo.pickInfo.aimTransform!, pointerInfo.pickInfo.gripTransform, pointerId, zDragFactor);\r\n }\r\n\r\n // Get change in rotation\r\n this._tmpQuaternion.copyFrom(virtualMeshesInfo.startingPivotOrientation);\r\n this._tmpQuaternion.x = -this._tmpQuaternion.x;\r\n this._tmpQuaternion.y = -this._tmpQuaternion.y;\r\n this._tmpQuaternion.z = -this._tmpQuaternion.z;\r\n virtualMeshesInfo.pivotMesh.absoluteRotationQuaternion!.multiplyToRef(this._tmpQuaternion, this._tmpQuaternion);\r\n virtualMeshesInfo.pivotMesh.absolutePosition.subtractToRef(virtualMeshesInfo.startingPivotPosition, this._tmpVector);\r\n\r\n this.onDragObservable.notifyObservers({ delta: this._tmpVector, position: virtualMeshesInfo.pivotMesh.position, pickInfo: pointerInfo.pickInfo });\r\n\r\n // Notify herited methods and observables\r\n this._targetDrag(this._tmpVector, this._tmpQuaternion, pointerId);\r\n virtualMeshesInfo.lastDragPosition.copyFrom(virtualMeshesInfo.dragMesh.absolutePosition);\r\n\r\n this._moving = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private _applyZOffset(node: TransformNode, localOriginDragDifference: number, zDragFactor: number) {\r\n // Determine how much the controller moved to/away towards the dragged object and use this to move the object further when its further away\r\n node.position.z -= node.position.z < 1 ? localOriginDragDifference * zDragFactor : localOriginDragDifference * zDragFactor * node.position.z;\r\n if (node.position.z < 0) {\r\n node.position.z = 0;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n protected _targetDragStart(worldPosition: Vector3, worldRotation: Quaternion, pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n protected _targetDrag(worldDeltaPosition: Vector3, worldDeltaRotation: Quaternion, pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n protected _targetDragEnd(pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n /**\r\n * Detaches the behavior from the mesh\r\n */\r\n public detach(): void {\r\n if (this._scene) {\r\n if (this.detachCameraControls && this._attachedToElement && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n this._pointerCamera.attachControl(true);\r\n this._attachedToElement = false;\r\n }\r\n this._scene.onPointerObservable.remove(this._pointerObserver);\r\n }\r\n\r\n for (const pointerId in this._virtualMeshesInfo) {\r\n this._virtualMeshesInfo[pointerId].originMesh.dispose();\r\n this._virtualMeshesInfo[pointerId].dragMesh.dispose();\r\n }\r\n\r\n this.onDragEndObservable.clear();\r\n this.onDragObservable.clear();\r\n this.onDragStartObservable.clear();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"baseSixDofDragBehavior.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Behaviors/Meshes/baseSixDofDragBehavior.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport type { Behavior } from \"../../Behaviors/behavior\";\r\nimport type { Mesh } from \"../../Meshes/mesh\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { Scene } from \"../../scene\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { PointerInfo } from \"../../Events/pointerEvents\";\r\nimport { PointerEventTypes } from \"../../Events/pointerEvents\";\r\nimport { Vector3, Quaternion, TmpVectors } from \"../../Maths/math.vector\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport { Observable } from \"../../Misc/observable\";\r\nimport type { TransformNode } from \"../../Meshes/transformNode\";\r\nimport type { PickingInfo } from \"../../Collisions/pickingInfo\";\r\nimport { Camera } from \"../../Cameras/camera\";\r\nimport type { Ray } from \"../../Culling/ray\";\r\nimport type { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n\r\n/**\r\n * Data store to track virtual pointers movement\r\n */\r\ntype VirtualMeshInfo = {\r\n dragging: boolean;\r\n moving: boolean;\r\n dragMesh: AbstractMesh;\r\n originMesh: AbstractMesh;\r\n pivotMesh: AbstractMesh;\r\n startingPivotPosition: Vector3;\r\n startingPivotOrientation: Quaternion;\r\n startingPosition: Vector3;\r\n startingOrientation: Quaternion;\r\n lastOriginPosition: Vector3;\r\n lastDragPosition: Vector3;\r\n};\r\n\r\n/**\r\n * Base behavior for six degrees of freedom interactions in XR experiences.\r\n * Creates virtual meshes that are dragged around\r\n * And observables for position/rotation changes\r\n */\r\nexport class BaseSixDofDragBehavior implements Behavior<Mesh> {\r\n protected static _virtualScene: Scene;\r\n private _pointerObserver: Nullable<Observer<PointerInfo>>;\r\n private _attachedToElement: boolean = false;\r\n protected _virtualMeshesInfo: {\r\n [id: number]: VirtualMeshInfo;\r\n } = {};\r\n\r\n private _tmpVector: Vector3 = new Vector3();\r\n private _tmpQuaternion: Quaternion = new Quaternion();\r\n\r\n protected _dragType = {\r\n NONE: 0,\r\n DRAG: 1,\r\n DRAG_WITH_CONTROLLER: 2,\r\n NEAR_DRAG: 3,\r\n };\r\n\r\n protected _scene: Scene;\r\n protected _moving = false;\r\n protected _ownerNode: TransformNode;\r\n protected _dragging = this._dragType.NONE;\r\n\r\n /**\r\n * The list of child meshes that can receive drag events\r\n * If `null`, all child meshes will receive drag event\r\n */\r\n public draggableMeshes: Nullable<AbstractMesh[]> = null;\r\n\r\n /**\r\n * How much faster the object should move when the controller is moving towards it. This is useful to bring objects that are far away from the user to them faster. Set this to 0 to avoid any speed increase. (Default: 3)\r\n */\r\n public zDragFactor = 3;\r\n /**\r\n * The id of the pointer that is currently interacting with the behavior (-1 when no pointer is active)\r\n */\r\n public get currentDraggingPointerId() {\r\n if (this.currentDraggingPointerIds[0] !== undefined) {\r\n return this.currentDraggingPointerIds[0];\r\n }\r\n return -1;\r\n }\r\n\r\n public set currentDraggingPointerId(value: number) {\r\n this.currentDraggingPointerIds[0] = value;\r\n }\r\n\r\n /**\r\n * In case of multipointer interaction, all pointer ids currently active are stored here\r\n */\r\n public currentDraggingPointerIds: number[] = [];\r\n\r\n /**\r\n * Get or set the currentDraggingPointerId\r\n * @deprecated Please use currentDraggingPointerId instead\r\n */\r\n public get currentDraggingPointerID(): number {\r\n return this.currentDraggingPointerId;\r\n }\r\n public set currentDraggingPointerID(currentDraggingPointerID: number) {\r\n this.currentDraggingPointerId = currentDraggingPointerID;\r\n }\r\n /**\r\n /**\r\n * If camera controls should be detached during the drag\r\n */\r\n public detachCameraControls = true;\r\n\r\n /**\r\n * Fires each time a drag starts\r\n */\r\n public onDragStartObservable = new Observable<{ position: Vector3 }>();\r\n /**\r\n * Fires each time a drag happens\r\n */\r\n public onDragObservable = new Observable<{ delta: Vector3; position: Vector3; pickInfo: PickingInfo }>();\r\n /**\r\n * Fires each time a drag ends (eg. mouse release after drag)\r\n */\r\n public onDragEndObservable = new Observable<{}>();\r\n\r\n /**\r\n * Should the behavior allow simultaneous pointers to interact with the owner node.\r\n */\r\n public allowMultiPointer: boolean = true;\r\n\r\n /**\r\n * The name of the behavior\r\n */\r\n public get name(): string {\r\n return \"BaseSixDofDrag\";\r\n }\r\n\r\n /**\r\n * Returns true if the attached mesh is currently moving with this behavior\r\n */\r\n public get isMoving(): boolean {\r\n return this._moving;\r\n }\r\n\r\n /**\r\n * Initializes the behavior\r\n */\r\n public init() {}\r\n\r\n /**\r\n * In the case of multiple active cameras, the cameraToUseForPointers should be used if set instead of active camera\r\n */\r\n private get _pointerCamera() {\r\n if (this._scene.cameraToUseForPointers) {\r\n return this._scene.cameraToUseForPointers;\r\n } else {\r\n return this._scene.activeCamera;\r\n }\r\n }\r\n\r\n private _createVirtualMeshInfo() {\r\n // Setup virtual meshes to be used for dragging without dirtying the existing scene\r\n\r\n const dragMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n dragMesh.rotationQuaternion = new Quaternion();\r\n const originMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n originMesh.rotationQuaternion = new Quaternion();\r\n const pivotMesh = new AbstractMesh(\"\", BaseSixDofDragBehavior._virtualScene);\r\n pivotMesh.rotationQuaternion = new Quaternion();\r\n\r\n return {\r\n dragging: false,\r\n moving: false,\r\n dragMesh,\r\n originMesh,\r\n pivotMesh,\r\n startingPivotPosition: new Vector3(),\r\n startingPivotOrientation: new Quaternion(),\r\n startingPosition: new Vector3(),\r\n startingOrientation: new Quaternion(),\r\n lastOriginPosition: new Vector3(),\r\n lastDragPosition: new Vector3(),\r\n };\r\n }\r\n\r\n protected _resetVirtualMeshesPosition() {\r\n for (let i = 0; i < this.currentDraggingPointerIds.length; i++) {\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint());\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.rotationQuaternion!.copyFrom(this._ownerNode.rotationQuaternion!);\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPivotPosition.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.position\r\n );\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPivotOrientation.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].pivotMesh.rotationQuaternion!\r\n );\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingPosition.copyFrom(this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].dragMesh.position);\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].startingOrientation.copyFrom(\r\n this._virtualMeshesInfo[this.currentDraggingPointerIds[i]].dragMesh.rotationQuaternion!\r\n );\r\n }\r\n }\r\n\r\n private _pointerUpdate2D(ray: Ray, pointerId: number, zDragFactor: number) {\r\n if (this._pointerCamera && this._pointerCamera.cameraRigMode == Camera.RIG_MODE_NONE && !this._pointerCamera._isLeftCamera && !this._pointerCamera._isRightCamera) {\r\n ray.origin.copyFrom(this._pointerCamera!.globalPosition);\r\n zDragFactor = 0;\r\n }\r\n\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n\r\n // Calculate controller drag distance in controller space\r\n const originDragDifference = TmpVectors.Vector3[0];\r\n ray.origin.subtractToRef(virtualMeshesInfo.lastOriginPosition, originDragDifference);\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(ray.origin);\r\n const localOriginDragDifference = -Vector3.Dot(originDragDifference, ray.direction);\r\n\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.pivotMesh);\r\n\r\n this._applyZOffset(virtualMeshesInfo.dragMesh, localOriginDragDifference, zDragFactor);\r\n this._applyZOffset(virtualMeshesInfo.pivotMesh, localOriginDragDifference, zDragFactor);\r\n\r\n // Update the controller position\r\n virtualMeshesInfo.originMesh.position.copyFrom(ray.origin);\r\n const lookAt = TmpVectors.Vector3[0];\r\n ray.origin.addToRef(ray.direction, lookAt);\r\n virtualMeshesInfo.originMesh.lookAt(lookAt);\r\n\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.pivotMesh);\r\n }\r\n\r\n private _pointerUpdateXR(controllerAimTransform: TransformNode, controllerGripTransform: Nullable<TransformNode>, pointerId: number, zDragFactor: number) {\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n virtualMeshesInfo.originMesh.position.copyFrom(controllerAimTransform.position);\r\n if (this._dragging === this._dragType.NEAR_DRAG && controllerGripTransform) {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(controllerGripTransform.rotationQuaternion!);\r\n } else {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(controllerAimTransform.rotationQuaternion!);\r\n }\r\n\r\n virtualMeshesInfo.pivotMesh.computeWorldMatrix(true);\r\n virtualMeshesInfo.dragMesh.computeWorldMatrix(true);\r\n\r\n // Z scaling logic\r\n if (zDragFactor !== 0) {\r\n // Camera.getForwardRay modifies TmpVectors.Vector[0-3], so cache it in advance\r\n const cameraForwardVec = TmpVectors.Vector3[0];\r\n const originDragDirection = TmpVectors.Vector3[1];\r\n cameraForwardVec.copyFrom(this._pointerCamera!.getForwardRay().direction);\r\n virtualMeshesInfo.originMesh.position.subtractToRef(virtualMeshesInfo.lastOriginPosition, originDragDirection);\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(virtualMeshesInfo.originMesh.position);\r\n const controllerDragDistance = originDragDirection.length();\r\n originDragDirection.normalize();\r\n\r\n const cameraToDrag = TmpVectors.Vector3[2];\r\n const controllerToDrag = TmpVectors.Vector3[3];\r\n virtualMeshesInfo.dragMesh.absolutePosition.subtractToRef(this._pointerCamera!.globalPosition, cameraToDrag);\r\n virtualMeshesInfo.dragMesh.absolutePosition.subtractToRef(virtualMeshesInfo.originMesh.position, controllerToDrag);\r\n const controllerToDragDistance = controllerToDrag.length();\r\n cameraToDrag.normalize();\r\n controllerToDrag.normalize();\r\n\r\n const controllerDragScaling = Math.abs(Vector3.Dot(originDragDirection, controllerToDrag)) * Vector3.Dot(originDragDirection, cameraForwardVec);\r\n let zOffsetScaling = controllerDragScaling * zDragFactor * controllerDragDistance * controllerToDragDistance;\r\n\r\n // Prevent pulling the mesh through the controller\r\n const minDistanceFromControllerToDragMesh = 0.01;\r\n if (zOffsetScaling < 0 && minDistanceFromControllerToDragMesh - controllerToDragDistance > zOffsetScaling) {\r\n zOffsetScaling = Math.min(minDistanceFromControllerToDragMesh - controllerToDragDistance, 0);\r\n }\r\n controllerToDrag.scaleInPlace(zOffsetScaling);\r\n\r\n controllerToDrag.addToRef(virtualMeshesInfo.pivotMesh.absolutePosition, this._tmpVector);\r\n virtualMeshesInfo.pivotMesh.setAbsolutePosition(this._tmpVector);\r\n controllerToDrag.addToRef(virtualMeshesInfo.dragMesh.absolutePosition, this._tmpVector);\r\n virtualMeshesInfo.dragMesh.setAbsolutePosition(this._tmpVector);\r\n }\r\n }\r\n\r\n /**\r\n * Attaches the scale behavior the passed in mesh\r\n * @param ownerNode The mesh that will be scaled around once attached\r\n */\r\n public attach(ownerNode: TransformNode): void {\r\n this._ownerNode = ownerNode;\r\n this._scene = this._ownerNode.getScene();\r\n if (!BaseSixDofDragBehavior._virtualScene) {\r\n BaseSixDofDragBehavior._virtualScene = new Scene(this._scene.getEngine(), { virtual: true });\r\n BaseSixDofDragBehavior._virtualScene.detachControl();\r\n }\r\n\r\n const pickPredicate = (m: AbstractMesh) => {\r\n return this._ownerNode === m || (m.isDescendantOf(this._ownerNode) && (!this.draggableMeshes || this.draggableMeshes.indexOf(m) !== -1));\r\n };\r\n\r\n this._pointerObserver = this._scene.onPointerObservable.add((pointerInfo) => {\r\n const pointerId = (<IPointerEvent>pointerInfo.event).pointerId;\r\n if (!this._virtualMeshesInfo[pointerId]) {\r\n this._virtualMeshesInfo[pointerId] = this._createVirtualMeshInfo();\r\n }\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n const isXRNearPointer = (<IPointerEvent>pointerInfo.event).pointerType === \"xr-near\";\r\n\r\n if (pointerInfo.type == PointerEventTypes.POINTERDOWN) {\r\n if (\r\n !virtualMeshesInfo.dragging &&\r\n pointerInfo.pickInfo &&\r\n pointerInfo.pickInfo.hit &&\r\n pointerInfo.pickInfo.pickedMesh &&\r\n pointerInfo.pickInfo.pickedPoint &&\r\n pointerInfo.pickInfo.ray &&\r\n (!isXRNearPointer || pointerInfo.pickInfo.aimTransform) &&\r\n pickPredicate(pointerInfo.pickInfo.pickedMesh)\r\n ) {\r\n if (!this.allowMultiPointer && this.currentDraggingPointerIds.length > 0) {\r\n return;\r\n }\r\n\r\n if (\r\n this._pointerCamera &&\r\n this._pointerCamera.cameraRigMode === Camera.RIG_MODE_NONE &&\r\n !this._pointerCamera._isLeftCamera &&\r\n !this._pointerCamera._isRightCamera\r\n ) {\r\n pointerInfo.pickInfo.ray.origin.copyFrom(this._pointerCamera!.globalPosition);\r\n }\r\n\r\n this._ownerNode.computeWorldMatrix(true);\r\n const virtualMeshesInfo = this._virtualMeshesInfo[pointerId];\r\n\r\n if (isXRNearPointer) {\r\n this._dragging = pointerInfo.pickInfo.originMesh ? this._dragType.NEAR_DRAG : this._dragType.DRAG_WITH_CONTROLLER;\r\n virtualMeshesInfo.originMesh.position.copyFrom(pointerInfo.pickInfo.aimTransform!.position);\r\n if (this._dragging === this._dragType.NEAR_DRAG && pointerInfo.pickInfo.gripTransform) {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(pointerInfo.pickInfo.gripTransform.rotationQuaternion!);\r\n } else {\r\n virtualMeshesInfo.originMesh.rotationQuaternion!.copyFrom(pointerInfo.pickInfo.aimTransform!.rotationQuaternion!);\r\n }\r\n } else {\r\n this._dragging = this._dragType.DRAG;\r\n virtualMeshesInfo.originMesh.position.copyFrom(pointerInfo.pickInfo.ray.origin);\r\n }\r\n\r\n virtualMeshesInfo.lastOriginPosition.copyFrom(virtualMeshesInfo.originMesh.position);\r\n\r\n virtualMeshesInfo.dragMesh.position.copyFrom(pointerInfo.pickInfo.pickedPoint);\r\n virtualMeshesInfo.lastDragPosition.copyFrom(pointerInfo.pickInfo.pickedPoint);\r\n\r\n virtualMeshesInfo.pivotMesh.position.copyFrom(this._ownerNode.getAbsolutePivotPoint());\r\n virtualMeshesInfo.pivotMesh.rotationQuaternion!.copyFrom(this._ownerNode.absoluteRotationQuaternion);\r\n\r\n virtualMeshesInfo.startingPosition.copyFrom(virtualMeshesInfo.dragMesh.position);\r\n virtualMeshesInfo.startingPivotPosition.copyFrom(virtualMeshesInfo.pivotMesh.position);\r\n virtualMeshesInfo.startingOrientation.copyFrom(virtualMeshesInfo.dragMesh.rotationQuaternion!);\r\n virtualMeshesInfo.startingPivotOrientation.copyFrom(virtualMeshesInfo.pivotMesh.rotationQuaternion!);\r\n\r\n if (isXRNearPointer) {\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.addChild(virtualMeshesInfo.pivotMesh);\r\n } else {\r\n virtualMeshesInfo.originMesh.lookAt(virtualMeshesInfo.dragMesh.position);\r\n }\r\n\r\n // Update state\r\n virtualMeshesInfo.dragging = true;\r\n\r\n if (this.currentDraggingPointerIds.indexOf(pointerId) === -1) {\r\n this.currentDraggingPointerIds.push(pointerId);\r\n }\r\n\r\n // Detach camera controls\r\n if (this.detachCameraControls && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n if (this._pointerCamera.inputs && this._pointerCamera.inputs.attachedToElement) {\r\n this._pointerCamera.detachControl();\r\n this._attachedToElement = true;\r\n } else {\r\n this._attachedToElement = false;\r\n }\r\n }\r\n\r\n this._targetDragStart(virtualMeshesInfo.pivotMesh.position, virtualMeshesInfo.pivotMesh.rotationQuaternion!, pointerId);\r\n this.onDragStartObservable.notifyObservers({ position: virtualMeshesInfo.pivotMesh.position });\r\n }\r\n } else if (pointerInfo.type == PointerEventTypes.POINTERUP || pointerInfo.type == PointerEventTypes.POINTERDOUBLETAP) {\r\n const registeredPointerIndex = this.currentDraggingPointerIds.indexOf(pointerId);\r\n\r\n // Update state\r\n virtualMeshesInfo.dragging = false;\r\n\r\n if (registeredPointerIndex !== -1) {\r\n this.currentDraggingPointerIds.splice(registeredPointerIndex, 1);\r\n if (this.currentDraggingPointerIds.length === 0) {\r\n this._moving = false;\r\n this._dragging = this._dragType.NONE;\r\n\r\n // Reattach camera controls\r\n if (this.detachCameraControls && this._attachedToElement && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n this._pointerCamera.attachControl(true);\r\n this._attachedToElement = false;\r\n }\r\n }\r\n\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.dragMesh);\r\n virtualMeshesInfo.originMesh.removeChild(virtualMeshesInfo.pivotMesh);\r\n this._targetDragEnd(pointerId);\r\n this.onDragEndObservable.notifyObservers({});\r\n }\r\n } else if (pointerInfo.type == PointerEventTypes.POINTERMOVE) {\r\n const registeredPointerIndex = this.currentDraggingPointerIds.indexOf(pointerId);\r\n\r\n if (registeredPointerIndex !== -1 && virtualMeshesInfo.dragging && pointerInfo.pickInfo && (pointerInfo.pickInfo.ray || pointerInfo.pickInfo.aimTransform)) {\r\n let zDragFactor = this.zDragFactor;\r\n\r\n // 2 pointer interaction should not have a z axis drag factor\r\n // as well as near interaction\r\n if (this.currentDraggingPointerIds.length > 1 || pointerInfo.pickInfo.originMesh) {\r\n zDragFactor = 0;\r\n }\r\n\r\n this._ownerNode.computeWorldMatrix(true);\r\n if (!isXRNearPointer) {\r\n this._pointerUpdate2D(pointerInfo.pickInfo.ray!, pointerId, zDragFactor);\r\n } else {\r\n this._pointerUpdateXR(pointerInfo.pickInfo.aimTransform!, pointerInfo.pickInfo.gripTransform, pointerId, zDragFactor);\r\n }\r\n\r\n // Get change in rotation\r\n this._tmpQuaternion.copyFrom(virtualMeshesInfo.startingPivotOrientation);\r\n this._tmpQuaternion.x = -this._tmpQuaternion.x;\r\n this._tmpQuaternion.y = -this._tmpQuaternion.y;\r\n this._tmpQuaternion.z = -this._tmpQuaternion.z;\r\n virtualMeshesInfo.pivotMesh.absoluteRotationQuaternion!.multiplyToRef(this._tmpQuaternion, this._tmpQuaternion);\r\n virtualMeshesInfo.pivotMesh.absolutePosition.subtractToRef(virtualMeshesInfo.startingPivotPosition, this._tmpVector);\r\n\r\n this.onDragObservable.notifyObservers({ delta: this._tmpVector, position: virtualMeshesInfo.pivotMesh.position, pickInfo: pointerInfo.pickInfo });\r\n\r\n // Notify herited methods and observables\r\n this._targetDrag(this._tmpVector, this._tmpQuaternion, pointerId);\r\n virtualMeshesInfo.lastDragPosition.copyFrom(virtualMeshesInfo.dragMesh.absolutePosition);\r\n\r\n this._moving = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private _applyZOffset(node: TransformNode, localOriginDragDifference: number, zDragFactor: number) {\r\n // Determine how much the controller moved to/away towards the dragged object and use this to move the object further when its further away\r\n node.position.z -= node.position.z < 1 ? localOriginDragDifference * zDragFactor : localOriginDragDifference * zDragFactor * node.position.z;\r\n if (node.position.z < 0) {\r\n node.position.z = 0;\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n protected _targetDragStart(worldPosition: Vector3, worldRotation: Quaternion, pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n protected _targetDrag(worldDeltaPosition: Vector3, worldDeltaRotation: Quaternion, pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n protected _targetDragEnd(pointerId: number) {\r\n // Herited classes can override that\r\n }\r\n\r\n /**\r\n * Detaches the behavior from the mesh\r\n */\r\n public detach(): void {\r\n if (this._scene) {\r\n if (this.detachCameraControls && this._attachedToElement && this._pointerCamera && !this._pointerCamera.leftCamera) {\r\n this._pointerCamera.attachControl(true);\r\n this._attachedToElement = false;\r\n }\r\n this._scene.onPointerObservable.remove(this._pointerObserver);\r\n }\r\n\r\n for (const pointerId in this._virtualMeshesInfo) {\r\n this._virtualMeshesInfo[pointerId].originMesh.dispose();\r\n this._virtualMeshesInfo[pointerId].dragMesh.dispose();\r\n }\r\n\r\n this.onDragEndObservable.clear();\r\n this.onDragObservable.clear();\r\n this.onDragStartObservable.clear();\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"followBehavior.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Behaviors/Meshes/followBehavior.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Behavior } from \"../behavior\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport type { Camera } from \"../../Cameras/camera\";\r\nimport { Matrix, Quaternion, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Scalar } from \"../../Maths/math.scalar\";\r\nimport type { TransformNode } from \"../../Meshes/transformNode\";\r\nimport { Epsilon } from \"../../Maths/math.constants\";\r\n\r\n/**\r\n * A behavior that when attached to a mesh will follow a camera\r\n * @since 5.0.0\r\n */\r\nexport class FollowBehavior implements Behavior<TransformNode> {\r\n private _scene: Scene;\r\n\r\n // Memory cache to avoid GC usage\r\n private _tmpQuaternion: Quaternion = new Quaternion();\r\n private _tmpVectors: Vector3[] = [new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3()];\r\n private _tmpMatrix: Matrix = new Matrix();\r\n private _tmpInvertView: Matrix = new Matrix();\r\n private _tmpForward: Vector3 = new Vector3();\r\n private _tmpNodeForward: Vector3 = new Vector3();\r\n private _tmpPosition: Vector3 = new Vector3();\r\n\r\n private _followedCamera: Nullable<Camera>;\r\n private _onBeforeRender: Nullable<Observer<Scene>>;\r\n\r\n private _workingPosition: Vector3 = new Vector3();\r\n private _workingQuaternion: Quaternion = new Quaternion();\r\n private _lastTick: number = -1;\r\n private _recenterNextUpdate = true;\r\n\r\n /**\r\n * Attached node of this behavior\r\n */\r\n public attachedNode: Nullable<TransformNode>;\r\n\r\n /**\r\n * Set to false if the node should strictly follow the camera without any interpolation time\r\n */\r\n public interpolatePose = true;\r\n\r\n /**\r\n * Rate of interpolation of position and rotation of the attached node.\r\n * Higher values will give a slower interpolation.\r\n */\r\n public lerpTime = 500;\r\n\r\n /**\r\n * If the behavior should ignore the pitch and roll of the camera.\r\n */\r\n public ignoreCameraPitchAndRoll = false;\r\n\r\n /**\r\n * Pitch offset from camera (relative to Max Distance)\r\n * Is only effective if `ignoreCameraPitchAndRoll` is set to `true`.\r\n */\r\n public pitchOffset = 15;\r\n\r\n /**\r\n * The vertical angle from the camera forward axis to the owner will not exceed this value\r\n */\r\n public maxViewVerticalDegrees = 30;\r\n\r\n /**\r\n * The horizontal angle from the camera forward axis to the owner will not exceed this value\r\n */\r\n public maxViewHorizontalDegrees = 30;\r\n /**\r\n * The attached node will not reorient until the angle between its forward vector and the vector to the camera is greater than this value\r\n */\r\n public orientToCameraDeadzoneDegrees = 60;\r\n /**\r\n * Option to ignore distance clamping\r\n */\r\n public ignoreDistanceClamp = false;\r\n /**\r\n * Option to ignore angle clamping\r\n */\r\n public ignoreAngleClamp = false;\r\n /**\r\n * Max vertical distance between the attachedNode and camera\r\n */\r\n public verticalMaxDistance = 0;\r\n /**\r\n * Default distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public defaultDistance = 0.8;\r\n /**\r\n * Max distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public maximumDistance = 2;\r\n /**\r\n * Min distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public minimumDistance = 0.3;\r\n\r\n /**\r\n * Ignore vertical movement and lock the Y position of the object.\r\n */\r\n public useFixedVerticalOffset = false;\r\n\r\n /**\r\n * Fixed vertical position offset distance.\r\n */\r\n public fixedVerticalOffset = 0;\r\n\r\n /**\r\n * Enables/disables the behavior\r\n * @hidden\r\n */\r\n public _enabled = true;\r\n\r\n /**\r\n * The camera that should be followed by this behavior\r\n */\r\n public get followedCamera(): Nullable<Camera> {\r\n return this._followedCamera || this._scene.activeCamera;\r\n }\r\n\r\n public set followedCamera(camera: Nullable<Camera>) {\r\n this._followedCamera = camera;\r\n }\r\n\r\n /**\r\n * The name of the behavior\r\n */\r\n public get name(): string {\r\n return \"Follow\";\r\n }\r\n\r\n /**\r\n * Initializes the behavior\r\n */\r\n public init() {}\r\n\r\n /**\r\n * Attaches the follow behavior\r\n * @param ownerNode The mesh that will be following once attached\r\n * @param followedCamera The camera that should be followed by the node\r\n */\r\n public attach(ownerNode: TransformNode, followedCamera?: Camera): void {\r\n this._scene = ownerNode.getScene();\r\n this.attachedNode = ownerNode;\r\n\r\n if (followedCamera) {\r\n this.followedCamera = followedCamera;\r\n }\r\n\r\n this._addObservables();\r\n }\r\n\r\n /**\r\n * Detaches the behavior from the mesh\r\n */\r\n public detach(): void {\r\n this.attachedNode = null;\r\n this._removeObservables();\r\n }\r\n\r\n /**\r\n * Recenters the attached node in front of the camera on the next update\r\n */\r\n public recenter() {\r\n this._recenterNextUpdate = true;\r\n }\r\n\r\n private _angleBetweenVectorAndPlane(vector: Vector3, normal: Vector3) {\r\n // Work on copies\r\n this._tmpVectors[0].copyFrom(vector);\r\n vector = this._tmpVectors[0];\r\n this._tmpVectors[1].copyFrom(normal);\r\n normal = this._tmpVectors[1];\r\n\r\n vector.normalize();\r\n normal.normalize();\r\n\r\n return Math.PI / 2 - Math.acos(Vector3.Dot(vector, normal));\r\n }\r\n\r\n private _length2D(vector: Vector3) {\r\n return Math.sqrt(vector.x * vector.x + vector.z * vector.z);\r\n }\r\n\r\n private _distanceClamp(currentToTarget: Vector3, moveToDefault: boolean = false) {\r\n let minDistance = this.minimumDistance;\r\n let maxDistance = this.maximumDistance;\r\n const defaultDistance = this.defaultDistance;\r\n\r\n const direction = this._tmpVectors[0];\r\n direction.copyFrom(currentToTarget);\r\n let currentDistance = direction.length();\r\n direction.normalizeFromLength(currentDistance);\r\n\r\n if (this.ignoreCameraPitchAndRoll) {\r\n // If we don't account for pitch offset, the casted object will float up/down as the reference\r\n // gets closer to it because we will still be casting in the direction of the pitched offset.\r\n // To fix this, only modify the XZ position of the object.\r\n minDistance = this._length2D(direction) * minDistance;\r\n maxDistance = this._length2D(direction) * maxDistance;\r\n\r\n const currentDistance2D = this._length2D(currentToTarget);\r\n direction.scaleInPlace(currentDistance / currentDistance2D);\r\n currentDistance = currentDistance2D;\r\n }\r\n\r\n let clampedDistance = currentDistance;\r\n\r\n if (moveToDefault) {\r\n clampedDistance = defaultDistance;\r\n } else {\r\n clampedDistance = Scalar.Clamp(currentDistance, minDistance, maxDistance);\r\n }\r\n\r\n currentToTarget.copyFrom(direction).scaleInPlace(clampedDistance);\r\n\r\n return currentDistance !== clampedDistance;\r\n }\r\n\r\n private _applyVerticalClamp(currentToTarget: Vector3) {\r\n if (this.verticalMaxDistance !== 0) {\r\n currentToTarget.y = Scalar.Clamp(currentToTarget.y, -this.verticalMaxDistance, this.verticalMaxDistance);\r\n }\r\n }\r\n\r\n private _toOrientationQuatToRef(vector: Vector3, quaternion: Quaternion) {\r\n Quaternion.RotationYawPitchRollToRef(Math.atan2(vector.x, vector.z), Math.atan2(vector.y, Math.sqrt(vector.z * vector.z + vector.x * vector.x)), 0, quaternion);\r\n }\r\n\r\n private _applyPitchOffset(invertView: Matrix) {\r\n const forward = this._tmpVectors[0];\r\n const right = this._tmpVectors[1];\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n right.copyFromFloats(1, 0, 0);\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n forward.y = 0;\r\n forward.normalize();\r\n Vector3.TransformNormalToRef(right, invertView, right);\r\n\r\n Quaternion.RotationAxisToRef(right, (this.pitchOffset * Math.PI) / 180, this._tmpQuaternion);\r\n forward.rotateByQuaternionToRef(this._tmpQuaternion, forward);\r\n this._toOrientationQuatToRef(forward, this._tmpQuaternion);\r\n this._tmpQuaternion.toRotationMatrix(this._tmpMatrix);\r\n\r\n // Since we already extracted position from the invert view matrix, we can\r\n // disregard the position part of the matrix in the copy\r\n invertView.copyFrom(this._tmpMatrix);\r\n }\r\n\r\n private _angularClamp(invertView: Matrix, currentToTarget: Vector3): boolean {\r\n const forward = this._tmpVectors[5];\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n const right = this._tmpVectors[6];\r\n right.copyFromFloats(1, 0, 0);\r\n\r\n // forward and right are related to camera frame of reference\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n Vector3.TransformNormalToRef(right, invertView, right);\r\n\r\n // Up is global Z\r\n const up = Vector3.UpReadOnly;\r\n\r\n const dist = currentToTarget.length();\r\n\r\n if (dist < Epsilon) {\r\n return false;\r\n }\r\n\r\n let angularClamped = false;\r\n const rotationQuat = this._tmpQuaternion;\r\n\r\n // X-axis leashing\r\n if (this.ignoreCameraPitchAndRoll) {\r\n const angle = Vector3.GetAngleBetweenVectorsOnPlane(currentToTarget, forward, right);\r\n Quaternion.RotationAxisToRef(right, angle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n } else {\r\n const angle = -Vector3.GetAngleBetweenVectorsOnPlane(currentToTarget, forward, right);\r\n const minMaxAngle = ((this.maxViewVerticalDegrees * Math.PI) / 180) * 0.5;\r\n if (angle < -minMaxAngle) {\r\n Quaternion.RotationAxisToRef(right, -angle - minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n } else if (angle > minMaxAngle) {\r\n Quaternion.RotationAxisToRef(right, -angle + minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n }\r\n }\r\n\r\n // Y-axis leashing\r\n const angle = this._angleBetweenVectorAndPlane(currentToTarget, right) * (this._scene.useRightHandedSystem ? -1 : 1);\r\n const minMaxAngle = ((this.maxViewHorizontalDegrees * Math.PI) / 180) * 0.5;\r\n if (angle < -minMaxAngle) {\r\n Quaternion.RotationAxisToRef(up, -angle - minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n } else if (angle > minMaxAngle) {\r\n Quaternion.RotationAxisToRef(up, -angle + minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n }\r\n\r\n return angularClamped;\r\n }\r\n\r\n private _orientationClamp(currentToTarget: Vector3, rotationQuaternion: Quaternion) {\r\n // Construct a rotation quat from up vector and target vector\r\n const toFollowed = this._tmpVectors[0];\r\n toFollowed.copyFrom(currentToTarget).scaleInPlace(-1).normalize();\r\n\r\n const up = this._tmpVectors[1];\r\n const right = this._tmpVectors[2];\r\n // We use global up vector to orient the following node (global +Y)\r\n up.copyFromFloats(0, 1, 0);\r\n\r\n // Gram-Schmidt to create an orthonormal frame\r\n Vector3.CrossToRef(toFollowed, up, right);\r\n const length = right.length();\r\n\r\n if (length < Epsilon) {\r\n return;\r\n }\r\n\r\n right.normalizeFromLength(length);\r\n\r\n Vector3.CrossToRef(right, toFollowed, up);\r\n if (this.attachedNode?.getScene().useRightHandedSystem) {\r\n Quaternion.FromLookDirectionRHToRef(toFollowed, up, rotationQuaternion);\r\n } else {\r\n Quaternion.FromLookDirectionLHToRef(toFollowed, up, rotationQuaternion);\r\n }\r\n }\r\n\r\n private _passedOrientationDeadzone(currentToTarget: Vector3, forward: Vector3) {\r\n const leashToFollow = this._tmpVectors[5];\r\n leashToFollow.copyFrom(currentToTarget);\r\n leashToFollow.normalize();\r\n\r\n const angle = Math.abs(Vector3.GetAngleBetweenVectorsOnPlane(forward, leashToFollow, Vector3.UpReadOnly));\r\n return (angle * 180) / Math.PI > this.orientToCameraDeadzoneDegrees;\r\n }\r\n\r\n private _updateLeashing(camera: Camera) {\r\n if (this.attachedNode && this._enabled) {\r\n const oldParent = this.attachedNode.parent;\r\n this.attachedNode.setParent(null);\r\n\r\n const worldMatrix = this.attachedNode.getWorldMatrix();\r\n const currentToTarget = this._workingPosition;\r\n const rotationQuaternion = this._workingQuaternion;\r\n const pivot = this.attachedNode.getPivotPoint();\r\n const invertView = this._tmpInvertView;\r\n invertView.copyFrom(camera.getViewMatrix());\r\n invertView.invert();\r\n\r\n Vector3.TransformCoordinatesToRef(pivot, worldMatrix, currentToTarget);\r\n const position = this._tmpPosition;\r\n position.copyFromFloats(0, 0, 0);\r\n Vector3.TransformCoordinatesToRef(position, worldMatrix, position);\r\n position.scaleInPlace(-1).subtractInPlace(pivot);\r\n currentToTarget.subtractInPlace(camera.globalPosition);\r\n\r\n if (this.ignoreCameraPitchAndRoll) {\r\n this._applyPitchOffset(invertView);\r\n }\r\n\r\n let angularClamped = false;\r\n const forward = this._tmpForward;\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n\r\n const nodeForward = this._tmpNodeForward;\r\n nodeForward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n Vector3.TransformNormalToRef(nodeForward, worldMatrix, nodeForward);\r\n\r\n if (this._recenterNextUpdate) {\r\n currentToTarget.copyFrom(forward).scaleInPlace(this.defaultDistance);\r\n } else {\r\n if (this.ignoreAngleClamp) {\r\n const currentDistance = currentToTarget.length();\r\n currentToTarget.copyFrom(forward).scaleInPlace(currentDistance);\r\n } else {\r\n angularClamped = this._angularClamp(invertView, currentToTarget);\r\n }\r\n }\r\n\r\n let distanceClamped = false;\r\n if (!this.ignoreDistanceClamp) {\r\n distanceClamped = this._distanceClamp(currentToTarget, angularClamped);\r\n this._applyVerticalClamp(currentToTarget);\r\n }\r\n\r\n if (this.useFixedVerticalOffset) {\r\n currentToTarget.y = position.y - camera.globalPosition.y + this.fixedVerticalOffset;\r\n }\r\n\r\n if (angularClamped || distanceClamped || this._passedOrientationDeadzone(currentToTarget, nodeForward) || this._recenterNextUpdate) {\r\n this._orientationClamp(currentToTarget, rotationQuaternion);\r\n }\r\n\r\n this._workingPosition.subtractInPlace(pivot);\r\n this._recenterNextUpdate = false;\r\n\r\n this.attachedNode.setParent(oldParent);\r\n }\r\n }\r\n\r\n private _updateTransformToGoal(elapsed: number) {\r\n if (!this.attachedNode || !this.followedCamera || !this._enabled) {\r\n return;\r\n }\r\n\r\n if (!this.attachedNode.rotationQuaternion) {\r\n this.attachedNode.rotationQuaternion = Quaternion.Identity();\r\n }\r\n\r\n const oldParent = this.attachedNode.parent;\r\n this.attachedNode.setParent(null);\r\n\r\n if (!this.interpolatePose) {\r\n this.attachedNode.position.copyFrom(this.followedCamera.globalPosition).addInPlace(this._workingPosition);\r\n this.attachedNode.rotationQuaternion.copyFrom(this._workingQuaternion);\r\n return;\r\n }\r\n\r\n // position\r\n const currentDirection = new Vector3();\r\n currentDirection.copyFrom(this.attachedNode.position).subtractInPlace(this.followedCamera.globalPosition);\r\n Vector3.SmoothToRef(currentDirection, this._workingPosition, elapsed, this.lerpTime, currentDirection);\r\n currentDirection.addInPlace(this.followedCamera.globalPosition);\r\n this.attachedNode.position.copyFrom(currentDirection);\r\n\r\n // rotation\r\n const currentRotation = new Quaternion();\r\n currentRotation.copyFrom(this.attachedNode.rotationQuaternion);\r\n Quaternion.SmoothToRef(currentRotation, this._workingQuaternion, elapsed, this.lerpTime, this.attachedNode.rotationQuaternion);\r\n\r\n this.attachedNode.setParent(oldParent);\r\n }\r\n\r\n private _addObservables() {\r\n this._lastTick = Date.now();\r\n this._onBeforeRender = this._scene.onBeforeRenderObservable.add(() => {\r\n if (!this.followedCamera) {\r\n return;\r\n }\r\n\r\n const tick = Date.now();\r\n this._updateLeashing(this.followedCamera);\r\n this._updateTransformToGoal(tick - this._lastTick);\r\n this._lastTick = tick;\r\n });\r\n }\r\n\r\n private _removeObservables() {\r\n if (this._onBeforeRender) {\r\n this._scene.onBeforeRenderObservable.remove(this._onBeforeRender);\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"followBehavior.js","sourceRoot":"","sources":["../../../../../../lts/core/generated/Behaviors/Meshes/followBehavior.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Behavior } from \"../behavior\";\r\nimport type { Scene } from \"../../scene\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport type { Camera } from \"../../Cameras/camera\";\r\nimport { Matrix, Quaternion, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Scalar } from \"../../Maths/math.scalar\";\r\nimport type { TransformNode } from \"../../Meshes/transformNode\";\r\nimport { Epsilon } from \"../../Maths/math.constants\";\r\n\r\n/**\r\n * A behavior that when attached to a mesh will follow a camera\r\n * @since 5.0.0\r\n */\r\nexport class FollowBehavior implements Behavior<TransformNode> {\r\n private _scene: Scene;\r\n\r\n // Memory cache to avoid GC usage\r\n private _tmpQuaternion: Quaternion = new Quaternion();\r\n private _tmpVectors: Vector3[] = [new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3(), new Vector3()];\r\n private _tmpMatrix: Matrix = new Matrix();\r\n private _tmpInvertView: Matrix = new Matrix();\r\n private _tmpForward: Vector3 = new Vector3();\r\n private _tmpNodeForward: Vector3 = new Vector3();\r\n private _tmpPosition: Vector3 = new Vector3();\r\n\r\n private _followedCamera: Nullable<Camera>;\r\n private _onBeforeRender: Nullable<Observer<Scene>>;\r\n\r\n private _workingPosition: Vector3 = new Vector3();\r\n private _workingQuaternion: Quaternion = new Quaternion();\r\n private _lastTick: number = -1;\r\n private _recenterNextUpdate = true;\r\n\r\n /**\r\n * Attached node of this behavior\r\n */\r\n public attachedNode: Nullable<TransformNode>;\r\n\r\n /**\r\n * Set to false if the node should strictly follow the camera without any interpolation time\r\n */\r\n public interpolatePose = true;\r\n\r\n /**\r\n * Rate of interpolation of position and rotation of the attached node.\r\n * Higher values will give a slower interpolation.\r\n */\r\n public lerpTime = 500;\r\n\r\n /**\r\n * If the behavior should ignore the pitch and roll of the camera.\r\n */\r\n public ignoreCameraPitchAndRoll = false;\r\n\r\n /**\r\n * Pitch offset from camera (relative to Max Distance)\r\n * Is only effective if `ignoreCameraPitchAndRoll` is set to `true`.\r\n */\r\n public pitchOffset = 15;\r\n\r\n /**\r\n * The vertical angle from the camera forward axis to the owner will not exceed this value\r\n */\r\n public maxViewVerticalDegrees = 30;\r\n\r\n /**\r\n * The horizontal angle from the camera forward axis to the owner will not exceed this value\r\n */\r\n public maxViewHorizontalDegrees = 30;\r\n /**\r\n * The attached node will not reorient until the angle between its forward vector and the vector to the camera is greater than this value\r\n */\r\n public orientToCameraDeadzoneDegrees = 60;\r\n /**\r\n * Option to ignore distance clamping\r\n */\r\n public ignoreDistanceClamp = false;\r\n /**\r\n * Option to ignore angle clamping\r\n */\r\n public ignoreAngleClamp = false;\r\n /**\r\n * Max vertical distance between the attachedNode and camera\r\n */\r\n public verticalMaxDistance = 0;\r\n /**\r\n * Default distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public defaultDistance = 0.8;\r\n /**\r\n * Max distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public maximumDistance = 2;\r\n /**\r\n * Min distance from eye to attached node, i.e. the sphere radius\r\n */\r\n public minimumDistance = 0.3;\r\n\r\n /**\r\n * Ignore vertical movement and lock the Y position of the object.\r\n */\r\n public useFixedVerticalOffset = false;\r\n\r\n /**\r\n * Fixed vertical position offset distance.\r\n */\r\n public fixedVerticalOffset = 0;\r\n\r\n /**\r\n * Enables/disables the behavior\r\n * @internal\r\n */\r\n public _enabled = true;\r\n\r\n /**\r\n * The camera that should be followed by this behavior\r\n */\r\n public get followedCamera(): Nullable<Camera> {\r\n return this._followedCamera || this._scene.activeCamera;\r\n }\r\n\r\n public set followedCamera(camera: Nullable<Camera>) {\r\n this._followedCamera = camera;\r\n }\r\n\r\n /**\r\n * The name of the behavior\r\n */\r\n public get name(): string {\r\n return \"Follow\";\r\n }\r\n\r\n /**\r\n * Initializes the behavior\r\n */\r\n public init() {}\r\n\r\n /**\r\n * Attaches the follow behavior\r\n * @param ownerNode The mesh that will be following once attached\r\n * @param followedCamera The camera that should be followed by the node\r\n */\r\n public attach(ownerNode: TransformNode, followedCamera?: Camera): void {\r\n this._scene = ownerNode.getScene();\r\n this.attachedNode = ownerNode;\r\n\r\n if (followedCamera) {\r\n this.followedCamera = followedCamera;\r\n }\r\n\r\n this._addObservables();\r\n }\r\n\r\n /**\r\n * Detaches the behavior from the mesh\r\n */\r\n public detach(): void {\r\n this.attachedNode = null;\r\n this._removeObservables();\r\n }\r\n\r\n /**\r\n * Recenters the attached node in front of the camera on the next update\r\n */\r\n public recenter() {\r\n this._recenterNextUpdate = true;\r\n }\r\n\r\n private _angleBetweenVectorAndPlane(vector: Vector3, normal: Vector3) {\r\n // Work on copies\r\n this._tmpVectors[0].copyFrom(vector);\r\n vector = this._tmpVectors[0];\r\n this._tmpVectors[1].copyFrom(normal);\r\n normal = this._tmpVectors[1];\r\n\r\n vector.normalize();\r\n normal.normalize();\r\n\r\n return Math.PI / 2 - Math.acos(Vector3.Dot(vector, normal));\r\n }\r\n\r\n private _length2D(vector: Vector3) {\r\n return Math.sqrt(vector.x * vector.x + vector.z * vector.z);\r\n }\r\n\r\n private _distanceClamp(currentToTarget: Vector3, moveToDefault: boolean = false) {\r\n let minDistance = this.minimumDistance;\r\n let maxDistance = this.maximumDistance;\r\n const defaultDistance = this.defaultDistance;\r\n\r\n const direction = this._tmpVectors[0];\r\n direction.copyFrom(currentToTarget);\r\n let currentDistance = direction.length();\r\n direction.normalizeFromLength(currentDistance);\r\n\r\n if (this.ignoreCameraPitchAndRoll) {\r\n // If we don't account for pitch offset, the casted object will float up/down as the reference\r\n // gets closer to it because we will still be casting in the direction of the pitched offset.\r\n // To fix this, only modify the XZ position of the object.\r\n minDistance = this._length2D(direction) * minDistance;\r\n maxDistance = this._length2D(direction) * maxDistance;\r\n\r\n const currentDistance2D = this._length2D(currentToTarget);\r\n direction.scaleInPlace(currentDistance / currentDistance2D);\r\n currentDistance = currentDistance2D;\r\n }\r\n\r\n let clampedDistance = currentDistance;\r\n\r\n if (moveToDefault) {\r\n clampedDistance = defaultDistance;\r\n } else {\r\n clampedDistance = Scalar.Clamp(currentDistance, minDistance, maxDistance);\r\n }\r\n\r\n currentToTarget.copyFrom(direction).scaleInPlace(clampedDistance);\r\n\r\n return currentDistance !== clampedDistance;\r\n }\r\n\r\n private _applyVerticalClamp(currentToTarget: Vector3) {\r\n if (this.verticalMaxDistance !== 0) {\r\n currentToTarget.y = Scalar.Clamp(currentToTarget.y, -this.verticalMaxDistance, this.verticalMaxDistance);\r\n }\r\n }\r\n\r\n private _toOrientationQuatToRef(vector: Vector3, quaternion: Quaternion) {\r\n Quaternion.RotationYawPitchRollToRef(Math.atan2(vector.x, vector.z), Math.atan2(vector.y, Math.sqrt(vector.z * vector.z + vector.x * vector.x)), 0, quaternion);\r\n }\r\n\r\n private _applyPitchOffset(invertView: Matrix) {\r\n const forward = this._tmpVectors[0];\r\n const right = this._tmpVectors[1];\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n right.copyFromFloats(1, 0, 0);\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n forward.y = 0;\r\n forward.normalize();\r\n Vector3.TransformNormalToRef(right, invertView, right);\r\n\r\n Quaternion.RotationAxisToRef(right, (this.pitchOffset * Math.PI) / 180, this._tmpQuaternion);\r\n forward.rotateByQuaternionToRef(this._tmpQuaternion, forward);\r\n this._toOrientationQuatToRef(forward, this._tmpQuaternion);\r\n this._tmpQuaternion.toRotationMatrix(this._tmpMatrix);\r\n\r\n // Since we already extracted position from the invert view matrix, we can\r\n // disregard the position part of the matrix in the copy\r\n invertView.copyFrom(this._tmpMatrix);\r\n }\r\n\r\n private _angularClamp(invertView: Matrix, currentToTarget: Vector3): boolean {\r\n const forward = this._tmpVectors[5];\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n const right = this._tmpVectors[6];\r\n right.copyFromFloats(1, 0, 0);\r\n\r\n // forward and right are related to camera frame of reference\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n Vector3.TransformNormalToRef(right, invertView, right);\r\n\r\n // Up is global Z\r\n const up = Vector3.UpReadOnly;\r\n\r\n const dist = currentToTarget.length();\r\n\r\n if (dist < Epsilon) {\r\n return false;\r\n }\r\n\r\n let angularClamped = false;\r\n const rotationQuat = this._tmpQuaternion;\r\n\r\n // X-axis leashing\r\n if (this.ignoreCameraPitchAndRoll) {\r\n const angle = Vector3.GetAngleBetweenVectorsOnPlane(currentToTarget, forward, right);\r\n Quaternion.RotationAxisToRef(right, angle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n } else {\r\n const angle = -Vector3.GetAngleBetweenVectorsOnPlane(currentToTarget, forward, right);\r\n const minMaxAngle = ((this.maxViewVerticalDegrees * Math.PI) / 180) * 0.5;\r\n if (angle < -minMaxAngle) {\r\n Quaternion.RotationAxisToRef(right, -angle - minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n } else if (angle > minMaxAngle) {\r\n Quaternion.RotationAxisToRef(right, -angle + minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n }\r\n }\r\n\r\n // Y-axis leashing\r\n const angle = this._angleBetweenVectorAndPlane(currentToTarget, right) * (this._scene.useRightHandedSystem ? -1 : 1);\r\n const minMaxAngle = ((this.maxViewHorizontalDegrees * Math.PI) / 180) * 0.5;\r\n if (angle < -minMaxAngle) {\r\n Quaternion.RotationAxisToRef(up, -angle - minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n } else if (angle > minMaxAngle) {\r\n Quaternion.RotationAxisToRef(up, -angle + minMaxAngle, rotationQuat);\r\n currentToTarget.rotateByQuaternionToRef(rotationQuat, currentToTarget);\r\n angularClamped = true;\r\n }\r\n\r\n return angularClamped;\r\n }\r\n\r\n private _orientationClamp(currentToTarget: Vector3, rotationQuaternion: Quaternion) {\r\n // Construct a rotation quat from up vector and target vector\r\n const toFollowed = this._tmpVectors[0];\r\n toFollowed.copyFrom(currentToTarget).scaleInPlace(-1).normalize();\r\n\r\n const up = this._tmpVectors[1];\r\n const right = this._tmpVectors[2];\r\n // We use global up vector to orient the following node (global +Y)\r\n up.copyFromFloats(0, 1, 0);\r\n\r\n // Gram-Schmidt to create an orthonormal frame\r\n Vector3.CrossToRef(toFollowed, up, right);\r\n const length = right.length();\r\n\r\n if (length < Epsilon) {\r\n return;\r\n }\r\n\r\n right.normalizeFromLength(length);\r\n\r\n Vector3.CrossToRef(right, toFollowed, up);\r\n if (this.attachedNode?.getScene().useRightHandedSystem) {\r\n Quaternion.FromLookDirectionRHToRef(toFollowed, up, rotationQuaternion);\r\n } else {\r\n Quaternion.FromLookDirectionLHToRef(toFollowed, up, rotationQuaternion);\r\n }\r\n }\r\n\r\n private _passedOrientationDeadzone(currentToTarget: Vector3, forward: Vector3) {\r\n const leashToFollow = this._tmpVectors[5];\r\n leashToFollow.copyFrom(currentToTarget);\r\n leashToFollow.normalize();\r\n\r\n const angle = Math.abs(Vector3.GetAngleBetweenVectorsOnPlane(forward, leashToFollow, Vector3.UpReadOnly));\r\n return (angle * 180) / Math.PI > this.orientToCameraDeadzoneDegrees;\r\n }\r\n\r\n private _updateLeashing(camera: Camera) {\r\n if (this.attachedNode && this._enabled) {\r\n const oldParent = this.attachedNode.parent;\r\n this.attachedNode.setParent(null);\r\n\r\n const worldMatrix = this.attachedNode.getWorldMatrix();\r\n const currentToTarget = this._workingPosition;\r\n const rotationQuaternion = this._workingQuaternion;\r\n const pivot = this.attachedNode.getPivotPoint();\r\n const invertView = this._tmpInvertView;\r\n invertView.copyFrom(camera.getViewMatrix());\r\n invertView.invert();\r\n\r\n Vector3.TransformCoordinatesToRef(pivot, worldMatrix, currentToTarget);\r\n const position = this._tmpPosition;\r\n position.copyFromFloats(0, 0, 0);\r\n Vector3.TransformCoordinatesToRef(position, worldMatrix, position);\r\n position.scaleInPlace(-1).subtractInPlace(pivot);\r\n currentToTarget.subtractInPlace(camera.globalPosition);\r\n\r\n if (this.ignoreCameraPitchAndRoll) {\r\n this._applyPitchOffset(invertView);\r\n }\r\n\r\n let angularClamped = false;\r\n const forward = this._tmpForward;\r\n forward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n Vector3.TransformNormalToRef(forward, invertView, forward);\r\n\r\n const nodeForward = this._tmpNodeForward;\r\n nodeForward.copyFromFloats(0, 0, this._scene.useRightHandedSystem ? -1 : 1);\r\n Vector3.TransformNormalToRef(nodeForward, worldMatrix, nodeForward);\r\n\r\n if (this._recenterNextUpdate) {\r\n currentToTarget.copyFrom(forward).scaleInPlace(this.defaultDistance);\r\n } else {\r\n if (this.ignoreAngleClamp) {\r\n const currentDistance = currentToTarget.length();\r\n currentToTarget.copyFrom(forward).scaleInPlace(currentDistance);\r\n } else {\r\n angularClamped = this._angularClamp(invertView, currentToTarget);\r\n }\r\n }\r\n\r\n let distanceClamped = false;\r\n if (!this.ignoreDistanceClamp) {\r\n distanceClamped = this._distanceClamp(currentToTarget, angularClamped);\r\n this._applyVerticalClamp(currentToTarget);\r\n }\r\n\r\n if (this.useFixedVerticalOffset) {\r\n currentToTarget.y = position.y - camera.globalPosition.y + this.fixedVerticalOffset;\r\n }\r\n\r\n if (angularClamped || distanceClamped || this._passedOrientationDeadzone(currentToTarget, nodeForward) || this._recenterNextUpdate) {\r\n this._orientationClamp(currentToTarget, rotationQuaternion);\r\n }\r\n\r\n this._workingPosition.subtractInPlace(pivot);\r\n this._recenterNextUpdate = false;\r\n\r\n this.attachedNode.setParent(oldParent);\r\n }\r\n }\r\n\r\n private _updateTransformToGoal(elapsed: number) {\r\n if (!this.attachedNode || !this.followedCamera || !this._enabled) {\r\n return;\r\n }\r\n\r\n if (!this.attachedNode.rotationQuaternion) {\r\n this.attachedNode.rotationQuaternion = Quaternion.Identity();\r\n }\r\n\r\n const oldParent = this.attachedNode.parent;\r\n this.attachedNode.setParent(null);\r\n\r\n if (!this.interpolatePose) {\r\n this.attachedNode.position.copyFrom(this.followedCamera.globalPosition).addInPlace(this._workingPosition);\r\n this.attachedNode.rotationQuaternion.copyFrom(this._workingQuaternion);\r\n return;\r\n }\r\n\r\n // position\r\n const currentDirection = new Vector3();\r\n currentDirection.copyFrom(this.attachedNode.position).subtractInPlace(this.followedCamera.globalPosition);\r\n Vector3.SmoothToRef(currentDirection, this._workingPosition, elapsed, this.lerpTime, currentDirection);\r\n currentDirection.addInPlace(this.followedCamera.globalPosition);\r\n this.attachedNode.position.copyFrom(currentDirection);\r\n\r\n // rotation\r\n const currentRotation = new Quaternion();\r\n currentRotation.copyFrom(this.attachedNode.rotationQuaternion);\r\n Quaternion.SmoothToRef(currentRotation, this._workingQuaternion, elapsed, this.lerpTime, this.attachedNode.rotationQuaternion);\r\n\r\n this.attachedNode.setParent(oldParent);\r\n }\r\n\r\n private _addObservables() {\r\n this._lastTick = Date.now();\r\n this._onBeforeRender = this._scene.onBeforeRenderObservable.add(() => {\r\n if (!this.followedCamera) {\r\n return;\r\n }\r\n\r\n const tick = Date.now();\r\n this._updateLeashing(this.followedCamera);\r\n this._updateTransformToGoal(tick - this._lastTick);\r\n this._lastTick = tick;\r\n });\r\n }\r\n\r\n private _removeObservables() {\r\n if (this._onBeforeRender) {\r\n this._scene.onBeforeRenderObservable.remove(this._onBeforeRender);\r\n }\r\n }\r\n}\r\n"]}
|