@babylonjs/core 5.0.0-beta.1 → 5.0.0-beta.10
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/actionManager.d.ts +1 -1
- package/Actions/actionManager.js +5 -1
- package/Actions/actionManager.js.map +1 -1
- package/Animations/animation.d.ts +6 -6
- package/Animations/animation.js +9 -5
- package/Animations/animation.js.map +1 -1
- package/Audio/analyser.d.ts +2 -1
- package/Audio/analyser.js +5 -0
- package/Audio/analyser.js.map +1 -1
- package/Audio/audioSceneComponent.d.ts +1 -1
- package/Audio/audioSceneComponent.js +5 -0
- package/Audio/audioSceneComponent.js.map +1 -1
- package/Audio/sound.d.ts +1 -1
- package/Audio/sound.js +8 -1
- package/Audio/sound.js.map +1 -1
- package/Audio/soundTrack.d.ts +2 -1
- package/Audio/soundTrack.js +5 -0
- package/Audio/soundTrack.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
- package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
- package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
- package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
- package/Bones/bone.d.ts +2 -1
- package/Bones/bone.js +28 -18
- package/Bones/bone.js.map +1 -1
- package/Bones/skeleton.d.ts +0 -6
- package/Bones/skeleton.js +5 -17
- package/Bones/skeleton.js.map +1 -1
- package/Buffers/buffer.d.ts +4 -0
- package/Buffers/buffer.js +13 -3
- package/Buffers/buffer.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
- package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
- package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
- package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
- package/Cameras/VR/vrExperienceHelper.js +1 -0
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/webVRCamera.d.ts +2 -1
- package/Cameras/VR/webVRCamera.js +3 -2
- package/Cameras/VR/webVRCamera.js.map +1 -1
- package/Cameras/arcRotateCamera.d.ts +1 -1
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Cameras/camera.d.ts +1 -1
- package/Cameras/camera.js +1 -1
- package/Cameras/camera.js.map +1 -1
- package/Cameras/deviceOrientationCamera.d.ts +1 -1
- package/Cameras/deviceOrientationCamera.js.map +1 -1
- package/Cameras/flyCamera.d.ts +1 -1
- package/Cameras/flyCamera.js.map +1 -1
- package/Cameras/followCamera.d.ts +1 -1
- package/Cameras/followCamera.js.map +1 -1
- package/Cameras/freeCamera.d.ts +1 -1
- package/Cameras/freeCamera.js.map +1 -1
- package/Cameras/gamepadCamera.d.ts +1 -1
- package/Cameras/gamepadCamera.js.map +1 -1
- package/Cameras/targetCamera.d.ts +1 -1
- package/Cameras/targetCamera.js.map +1 -1
- package/Cameras/touchCamera.d.ts +1 -1
- package/Cameras/touchCamera.js.map +1 -1
- package/Cameras/universalCamera.d.ts +1 -1
- package/Cameras/universalCamera.js.map +1 -1
- package/Cameras/virtualJoysticksCamera.d.ts +1 -1
- package/Cameras/virtualJoysticksCamera.js.map +1 -1
- package/Collisions/collider.d.ts +1 -1
- package/Collisions/collider.js +48 -2
- package/Collisions/collider.js.map +1 -1
- package/Compat/compatibilityOptions.d.ts +9 -0
- package/Compat/compatibilityOptions.js +14 -0
- package/Compat/compatibilityOptions.js.map +1 -0
- package/Compat/index.d.ts +1 -0
- package/Compat/index.js +2 -0
- package/Compat/index.js.map +1 -0
- package/Compute/computeEffect.js +2 -2
- package/Compute/computeEffect.js.map +1 -1
- package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
- package/Culling/Octrees/octreeSceneComponent.js +5 -0
- package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
- package/Culling/ray.d.ts +6 -4
- package/Culling/ray.js +35 -13
- package/Culling/ray.js.map +1 -1
- package/Debug/axesViewer.d.ts +2 -1
- package/Debug/axesViewer.js +6 -0
- package/Debug/axesViewer.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js +6 -2
- package/Debug/debugLayer.js.map +1 -1
- package/Debug/physicsViewer.d.ts +1 -1
- package/Debug/physicsViewer.js +3 -0
- package/Debug/physicsViewer.js.map +1 -1
- package/Debug/skeletonViewer.js +3 -4
- package/Debug/skeletonViewer.js.map +1 -1
- package/DeviceInput/Helpers/eventFactory.d.ts +1 -1
- package/DeviceInput/Helpers/eventFactory.js +10 -6
- package/DeviceInput/Helpers/eventFactory.js.map +1 -1
- package/DeviceInput/InputDevices/deviceEnums.d.ts +55 -2
- package/DeviceInput/InputDevices/deviceEnums.js +54 -0
- package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
- package/DeviceInput/InputDevices/deviceSource.d.ts +35 -0
- package/DeviceInput/InputDevices/deviceSource.js +38 -0
- package/DeviceInput/InputDevices/deviceSource.js.map +1 -0
- package/DeviceInput/InputDevices/deviceSourceManager.d.ts +23 -66
- package/DeviceInput/InputDevices/deviceSourceManager.js +40 -149
- package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
- package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
- package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
- package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.d.ts +1 -5
- package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.js +0 -0
- package/DeviceInput/InputDevices/inputInterfaces.js.map +1 -0
- package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +51 -0
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js +138 -0
- package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -0
- package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.d.ts +3 -7
- package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.js +11 -16
- package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -0
- package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.d.ts +17 -19
- package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.js +212 -166
- package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -0
- package/DeviceInput/index.d.ts +1 -5
- package/DeviceInput/index.js +1 -5
- package/DeviceInput/index.js.map +1 -1
- package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
- package/Engines/Extensions/engine.cubeTexture.js +6 -2
- package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/Extensions/engine.multiview.d.ts +5 -0
- package/Engines/Extensions/engine.multiview.js +4 -2
- package/Engines/Extensions/engine.multiview.js.map +1 -1
- package/Engines/Extensions/engine.query.d.ts +7 -0
- package/Engines/Extensions/engine.query.js +12 -0
- package/Engines/Extensions/engine.query.js.map +1 -1
- package/Engines/Extensions/engine.views.d.ts +7 -0
- package/Engines/Extensions/engine.views.js +12 -0
- package/Engines/Extensions/engine.views.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +3 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
- package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
- package/Engines/Processors/shaderCodeInliner.js +13 -13
- package/Engines/Processors/shaderCodeInliner.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -1
- package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
- package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
- package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -7
- package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +1 -1
- package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
- package/Engines/WebGPU/webgpuCacheSampler.d.ts +2 -0
- package/Engines/WebGPU/webgpuCacheSampler.js +23 -2
- package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js +1 -1
- package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
- package/Engines/WebGPU/webgpuConstants.d.ts +2 -1
- package/Engines/WebGPU/webgpuConstants.js +1 -0
- package/Engines/WebGPU/webgpuConstants.js.map +1 -1
- package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
- package/Engines/WebGPU/webgpuDrawContext.js +3 -3
- package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
- package/Engines/WebGPU/webgpuHardwareTexture.d.ts +0 -1
- package/Engines/WebGPU/webgpuHardwareTexture.js +0 -3
- package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
- package/Engines/WebGPU/webgpuPipelineContext.d.ts +0 -8
- package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
- package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/WebGPU/webgpuTextureHelper.d.ts +0 -1
- package/Engines/WebGPU/webgpuTextureHelper.js +22 -37
- package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
- package/Engines/engine.d.ts +48 -33
- package/Engines/engine.js +2 -6
- package/Engines/engine.js.map +1 -1
- package/Engines/engineCapabilities.d.ts +4 -0
- package/Engines/engineCapabilities.js.map +1 -1
- package/Engines/index.d.ts +1 -0
- package/Engines/index.js +1 -0
- package/Engines/index.js.map +1 -1
- package/Engines/nativeEngine.d.ts +1 -0
- package/Engines/nativeEngine.js +40 -12
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/nullEngine.js +3 -1
- package/Engines/nullEngine.js.map +1 -1
- package/Engines/renderTargetWrapper.d.ts +8 -0
- package/Engines/renderTargetWrapper.js +20 -0
- package/Engines/renderTargetWrapper.js.map +1 -1
- package/Engines/thinEngine.d.ts +18 -2
- package/Engines/thinEngine.js +51 -21
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +3 -7
- package/Engines/webgpuEngine.js +43 -42
- package/Engines/webgpuEngine.js.map +1 -1
- package/Events/keyboardEvents.d.ts +7 -1
- package/Events/keyboardEvents.js +11 -1
- package/Events/keyboardEvents.js.map +1 -1
- package/Gamepads/Controllers/daydreamController.js +1 -1
- package/Gamepads/Controllers/daydreamController.js.map +1 -1
- package/Gamepads/Controllers/oculusTouchController.js +2 -2
- package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
- package/Gamepads/Controllers/webVRController.d.ts +1 -0
- package/Gamepads/Controllers/webVRController.js +1 -0
- package/Gamepads/Controllers/webVRController.js.map +1 -1
- package/Gamepads/gamepadManager.js +1 -1
- package/Gamepads/gamepadManager.js.map +1 -1
- package/Gizmos/boundingBoxGizmo.js +0 -10
- package/Gizmos/boundingBoxGizmo.js.map +1 -1
- package/Gizmos/gizmo.js +1 -1
- package/Gizmos/gizmo.js.map +1 -1
- package/Gizmos/gizmoManager.d.ts +2 -0
- package/Gizmos/gizmoManager.js +28 -24
- package/Gizmos/gizmoManager.js.map +1 -1
- package/Helpers/sceneHelpers.d.ts +1 -0
- package/Helpers/sceneHelpers.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +2 -3
- package/Inputs/scene.inputManager.js +14 -16
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Instrumentation/sceneInstrumentation.js +2 -2
- package/Instrumentation/sceneInstrumentation.js.map +1 -1
- package/Layers/effectLayer.d.ts +2 -1
- package/Layers/effectLayer.js +25 -1
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/effectLayerSceneComponent.d.ts +1 -1
- package/Layers/effectLayerSceneComponent.js +7 -3
- package/Layers/effectLayerSceneComponent.js.map +1 -1
- package/Layers/glowLayer.d.ts +1 -1
- package/Layers/glowLayer.js.map +1 -1
- package/Layers/highlightLayer.d.ts +1 -1
- package/Layers/highlightLayer.js +2 -1
- package/Layers/highlightLayer.js.map +1 -1
- package/Layers/layer.d.ts +2 -2
- package/Layers/layer.js.map +1 -1
- package/Layers/layerSceneComponent.d.ts +1 -1
- package/Layers/layerSceneComponent.js +7 -3
- package/Layers/layerSceneComponent.js.map +1 -1
- package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
- package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +7 -7
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js +115 -37
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Loading/loadingScreen.js +8 -8
- package/Loading/loadingScreen.js.map +1 -1
- package/Loading/sceneLoader.js +7 -6
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.d.ts +1 -1
- package/Materials/Background/backgroundMaterial.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
- package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
- package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
- package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
- package/Materials/Node/Blocks/Dual/index.js +1 -0
- package/Materials/Node/Blocks/Dual/index.js.map +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
- package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
- package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
- package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
- package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
- package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
- package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
- package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
- package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
- package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
- package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
- package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
- package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
- package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
- package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
- package/Materials/Node/Blocks/addBlock.js +1 -1
- package/Materials/Node/Blocks/addBlock.js.map +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js +1 -1
- package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.js +3 -3
- package/Materials/Node/Blocks/clampBlock.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.js +7 -7
- package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
- package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
- package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.js +10 -10
- package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
- package/Materials/Node/Blocks/crossBlock.js +1 -1
- package/Materials/Node/Blocks/crossBlock.js.map +1 -1
- package/Materials/Node/Blocks/customBlock.js +1 -1
- package/Materials/Node/Blocks/customBlock.js.map +1 -1
- package/Materials/Node/Blocks/desaturateBlock.js +4 -4
- package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
- package/Materials/Node/Blocks/distanceBlock.js +1 -1
- package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
- package/Materials/Node/Blocks/divideBlock.js +1 -1
- package/Materials/Node/Blocks/divideBlock.js.map +1 -1
- package/Materials/Node/Blocks/dotBlock.js +1 -1
- package/Materials/Node/Blocks/dotBlock.js.map +1 -1
- package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
- package/Materials/Node/Blocks/elbowBlock.js +60 -0
- package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
- package/Materials/Node/Blocks/fresnelBlock.js +2 -2
- package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
- package/Materials/Node/Blocks/gradientBlock.js +8 -8
- package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
- package/Materials/Node/Blocks/index.d.ts +1 -0
- package/Materials/Node/Blocks/index.js +1 -0
- package/Materials/Node/Blocks/index.js.map +1 -1
- package/Materials/Node/Blocks/lengthBlock.js +1 -1
- package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
- package/Materials/Node/Blocks/lerpBlock.js +1 -1
- package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
- package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
- package/Materials/Node/Blocks/maxBlock.js +1 -1
- package/Materials/Node/Blocks/maxBlock.js.map +1 -1
- package/Materials/Node/Blocks/minBlock.js +1 -1
- package/Materials/Node/Blocks/minBlock.js.map +1 -1
- package/Materials/Node/Blocks/modBlock.js +1 -1
- package/Materials/Node/Blocks/modBlock.js.map +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js +1 -1
- package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js +1 -1
- package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
- package/Materials/Node/Blocks/negateBlock.js +1 -1
- package/Materials/Node/Blocks/negateBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
- package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js +1 -1
- package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
- package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js +1 -1
- package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
- package/Materials/Node/Blocks/powBlock.js +1 -1
- package/Materials/Node/Blocks/powBlock.js.map +1 -1
- package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
- package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
- package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
- package/Materials/Node/Blocks/reflectBlock.js +1 -1
- package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
- package/Materials/Node/Blocks/refractBlock.js +1 -1
- package/Materials/Node/Blocks/refractBlock.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.js +3 -3
- package/Materials/Node/Blocks/remapBlock.js.map +1 -1
- package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
- package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
- package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
- package/Materials/Node/Blocks/scaleBlock.js +1 -1
- package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
- package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
- package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
- package/Materials/Node/Blocks/stepBlock.js +1 -1
- package/Materials/Node/Blocks/stepBlock.js.map +1 -1
- package/Materials/Node/Blocks/subtractBlock.js +1 -1
- package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.js +13 -13
- package/Materials/Node/Blocks/transformBlock.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
- package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
- package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
- package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
- package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
- package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
- package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.js +3 -3
- package/Materials/Node/Blocks/waveBlock.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
- package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
- package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
- package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
- package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +4 -0
- package/Materials/Node/nodeMaterial.js +22 -11
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBlock.js +12 -12
- package/Materials/Node/nodeMaterialBlock.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.js +24 -24
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
- package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
- package/Materials/PBR/pbrBaseMaterial.js +4 -3
- package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrMaterial.d.ts +1 -1
- package/Materials/PBR/pbrMaterial.js +2 -3
- package/Materials/PBR/pbrMaterial.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
- package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
- package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
- package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
- package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
- package/Materials/Textures/MultiviewRenderTarget.js +10 -2
- package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
- package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
- package/Materials/Textures/baseTexture.d.ts +1 -1
- package/Materials/Textures/baseTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +1 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
- package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
- package/Materials/Textures/internalTexture.d.ts +2 -0
- package/Materials/Textures/internalTexture.js +2 -0
- package/Materials/Textures/internalTexture.js.map +1 -1
- package/Materials/Textures/mirrorTexture.d.ts +2 -2
- package/Materials/Textures/mirrorTexture.js +7 -3
- package/Materials/Textures/mirrorTexture.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +1 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
- package/Materials/Textures/prePassRenderTarget.js.map +1 -1
- package/Materials/Textures/refractionTexture.d.ts +1 -1
- package/Materials/Textures/refractionTexture.js +2 -2
- package/Materials/Textures/refractionTexture.js.map +1 -1
- package/Materials/Textures/renderTargetTexture.d.ts +1 -1
- package/Materials/Textures/renderTargetTexture.js +2 -2
- package/Materials/Textures/renderTargetTexture.js.map +1 -1
- package/Materials/Textures/texture.d.ts +1 -1
- package/Materials/Textures/texture.js +5 -5
- package/Materials/Textures/texture.js.map +1 -1
- package/Materials/Textures/videoTexture.js +1 -0
- package/Materials/Textures/videoTexture.js.map +1 -1
- package/Materials/effect.js +3 -3
- package/Materials/effect.js.map +1 -1
- package/Materials/material.d.ts +3 -1
- package/Materials/material.js +11 -3
- package/Materials/material.js.map +1 -1
- package/Materials/materialHelper.js +9 -1
- package/Materials/materialHelper.js.map +1 -1
- package/Materials/materialPluginManager.js +3 -3
- package/Materials/materialPluginManager.js.map +1 -1
- package/Materials/multiMaterial.d.ts +3 -1
- package/Materials/multiMaterial.js +13 -11
- package/Materials/multiMaterial.js.map +1 -1
- package/Materials/pushMaterial.d.ts +1 -1
- package/Materials/pushMaterial.js.map +1 -1
- package/Materials/shaderMaterial.js +8 -4
- package/Materials/shaderMaterial.js.map +1 -1
- package/Materials/shadowDepthWrapper.d.ts +1 -1
- package/Materials/shadowDepthWrapper.js +3 -3
- package/Materials/shadowDepthWrapper.js.map +1 -1
- package/Materials/standardMaterial.d.ts +2 -6
- package/Materials/standardMaterial.js +5 -10
- package/Materials/standardMaterial.js.map +1 -1
- package/Maths/math.path.d.ts +1 -0
- package/Maths/math.path.js +1 -0
- package/Maths/math.path.js.map +1 -1
- package/Maths/math.size.js +1 -1
- package/Maths/math.size.js.map +1 -1
- package/Maths/math.vector.d.ts +5 -2
- package/Maths/math.vector.js +66 -47
- package/Maths/math.vector.js.map +1 -1
- package/Meshes/Builders/boxBuilder.js +5 -4
- package/Meshes/Builders/boxBuilder.js.map +1 -1
- package/Meshes/Builders/capsuleBuilder.js +4 -3
- package/Meshes/Builders/capsuleBuilder.js.map +1 -1
- package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
- package/Meshes/Builders/cylinderBuilder.js +11 -8
- package/Meshes/Builders/cylinderBuilder.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +5 -2
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/Builders/discBuilder.js +3 -2
- package/Meshes/Builders/discBuilder.js.map +1 -1
- package/Meshes/Builders/geodesicBuilder.d.ts +1 -0
- package/Meshes/Builders/geodesicBuilder.js +1 -0
- package/Meshes/Builders/geodesicBuilder.js.map +1 -1
- package/Meshes/Builders/goldbergBuilder.d.ts +1 -0
- package/Meshes/Builders/goldbergBuilder.js +11 -1
- package/Meshes/Builders/goldbergBuilder.js.map +1 -1
- package/Meshes/Builders/groundBuilder.js +2 -1
- package/Meshes/Builders/groundBuilder.js.map +1 -1
- package/Meshes/Builders/icoSphereBuilder.js +2 -1
- package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
- package/Meshes/Builders/linesBuilder.js.map +1 -1
- package/Meshes/Builders/planeBuilder.js +5 -4
- package/Meshes/Builders/planeBuilder.js.map +1 -1
- package/Meshes/Builders/polygonBuilder.js +8 -3
- package/Meshes/Builders/polygonBuilder.js.map +1 -1
- package/Meshes/Builders/polyhedronBuilder.js +3 -2
- package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
- package/Meshes/Builders/ribbonBuilder.js +4 -3
- package/Meshes/Builders/ribbonBuilder.js.map +1 -1
- package/Meshes/Builders/sphereBuilder.js +2 -1
- package/Meshes/Builders/sphereBuilder.js.map +1 -1
- package/Meshes/Builders/tiledBoxBuilder.d.ts +30 -11
- package/Meshes/Builders/tiledBoxBuilder.js +34 -11
- package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
- package/Meshes/Builders/tiledPlaneBuilder.d.ts +21 -16
- package/Meshes/Builders/tiledPlaneBuilder.js +21 -16
- package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
- package/Meshes/Builders/torusBuilder.js +2 -1
- package/Meshes/Builders/torusBuilder.js.map +1 -1
- package/Meshes/Builders/torusKnotBuilder.js +2 -1
- package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
- package/Meshes/Compression/dracoCompression.d.ts +3 -0
- package/Meshes/Compression/dracoCompression.js +23 -7
- package/Meshes/Compression/dracoCompression.js.map +1 -1
- package/Meshes/abstractMesh.d.ts +14 -2
- package/Meshes/abstractMesh.js +51 -33
- package/Meshes/abstractMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +1 -1
- package/Meshes/geometry.js +38 -3
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/groundMesh.d.ts +1 -1
- package/Meshes/groundMesh.js.map +1 -1
- package/Meshes/instancedMesh.js +5 -6
- package/Meshes/instancedMesh.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -1
- package/Meshes/mesh.js +53 -36
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/mesh.lts.d.ts +1 -1
- package/Meshes/mesh.lts.js.map +1 -1
- package/Meshes/mesh.vertexData.d.ts +2 -2
- package/Meshes/mesh.vertexData.js +4 -3
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/polygonMesh.js +2 -2
- package/Meshes/polygonMesh.js.map +1 -1
- package/Meshes/subMesh.js +1 -2
- package/Meshes/subMesh.js.map +1 -1
- package/Meshes/subMesh.project.js +1 -2
- package/Meshes/subMesh.project.js.map +1 -1
- package/Meshes/thinInstanceMesh.js +5 -0
- package/Meshes/thinInstanceMesh.js.map +1 -1
- package/Meshes/trailMesh.d.ts +1 -1
- package/Meshes/trailMesh.js.map +1 -1
- package/Meshes/transformNode.js +40 -13
- package/Meshes/transformNode.js.map +1 -1
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
- package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
- package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
- package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -19
- package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
- package/Misc/assetsManager.d.ts +2 -1
- package/Misc/assetsManager.js +15 -1
- package/Misc/assetsManager.js.map +1 -1
- package/Misc/basis.js +1 -1
- package/Misc/basis.js.map +1 -1
- package/Misc/brdfTextureTools.js +4 -1
- package/Misc/brdfTextureTools.js.map +1 -1
- package/Misc/dds.js +7 -0
- package/Misc/dds.js.map +1 -1
- package/Misc/decorators.d.ts +1 -1
- package/Misc/decorators.js +8 -1
- package/Misc/decorators.js.map +1 -1
- package/Misc/deepCopier.js +3 -3
- package/Misc/deepCopier.js.map +1 -1
- package/Misc/devTools.js +1 -1
- package/Misc/devTools.js.map +1 -1
- package/Misc/environmentTextureTools.js +2 -2
- package/Misc/environmentTextureTools.js.map +1 -1
- package/Misc/error.d.ts +51 -0
- package/Misc/error.js +66 -0
- package/Misc/error.js.map +1 -0
- package/Misc/fileTools.d.ts +4 -4
- package/Misc/fileTools.js +14 -12
- package/Misc/fileTools.js.map +1 -1
- package/Misc/index.d.ts +2 -0
- package/Misc/index.js +2 -0
- package/Misc/index.js.map +1 -1
- package/Misc/khronosTextureContainer2.js +4 -3
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Misc/reflector.js +6 -6
- package/Misc/reflector.js.map +1 -1
- package/Misc/tools.js +15 -13
- package/Misc/tools.js.map +1 -1
- package/Misc/uniqueIdGenerator.js +1 -1
- package/Misc/uniqueIdGenerator.js.map +1 -1
- package/Offline/database.js +1 -1
- package/Offline/database.js.map +1 -1
- package/Particles/baseParticleSystem.d.ts +4 -1
- package/Particles/baseParticleSystem.js +20 -5
- package/Particles/baseParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.js +2 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/particleHelper.js +2 -2
- package/Particles/particleHelper.js.map +1 -1
- package/Particles/particleSystem.js +7 -1
- package/Particles/particleSystem.js.map +1 -1
- package/Physics/Plugins/ammoJSPlugin.d.ts +5 -1
- package/Physics/Plugins/ammoJSPlugin.js +16 -11
- package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
- package/Physics/physicsEngine.d.ts +1 -0
- package/Physics/physicsEngine.js +3 -1
- package/Physics/physicsEngine.js.map +1 -1
- package/Physics/physicsImpostor.d.ts +2 -2
- package/Physics/physicsImpostor.js.map +1 -1
- package/PostProcesses/blurPostProcess.js +5 -5
- package/PostProcesses/blurPostProcess.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +1 -1
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/postProcess.js +1 -1
- package/PostProcesses/postProcess.js.map +1 -1
- package/PostProcesses/postProcessManager.js +2 -2
- package/PostProcesses/postProcessManager.js.map +1 -1
- package/Probes/reflectionProbe.js +2 -2
- package/Probes/reflectionProbe.js.map +1 -1
- package/Rendering/depthPeelingRenderer.js +3 -3
- package/Rendering/depthPeelingRenderer.js.map +1 -1
- package/Rendering/geometryBufferRenderer.js +8 -8
- package/Rendering/geometryBufferRenderer.js.map +1 -1
- package/Rendering/outlineRenderer.js +1 -1
- package/Rendering/outlineRenderer.js.map +1 -1
- package/Rendering/subSurfaceConfiguration.js +1 -1
- package/Rendering/subSurfaceConfiguration.js.map +1 -1
- package/Rendering/utilityLayerRenderer.js +4 -0
- package/Rendering/utilityLayerRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
- package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
- package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
- package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js +1 -1
- package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
- package/Shaders/background.vertex.js +1 -1
- package/Shaders/background.vertex.js.map +1 -1
- package/Shaders/color.fragment.js +1 -1
- package/Shaders/color.fragment.js.map +1 -1
- package/Shaders/color.vertex.js +1 -1
- package/Shaders/color.vertex.js.map +1 -1
- package/Shaders/default.fragment.js +1 -1
- package/Shaders/default.fragment.js.map +1 -1
- package/Shaders/default.vertex.js +1 -1
- package/Shaders/default.vertex.js.map +1 -1
- package/Shaders/geometry.vertex.js +1 -1
- package/Shaders/geometry.vertex.js.map +1 -1
- package/Shaders/pbr.fragment.js +1 -1
- package/Shaders/pbr.fragment.js.map +1 -1
- package/Shaders/pbr.vertex.js +1 -1
- package/Shaders/pbr.vertex.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
- package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
- package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
- package/Sprites/spriteManager.js +9 -10
- package/Sprites/spriteManager.js.map +1 -1
- package/Sprites/spriteMap.js +2 -2
- package/Sprites/spriteMap.js.map +1 -1
- package/Sprites/spriteRenderer.js +1 -1
- package/Sprites/spriteRenderer.js.map +1 -1
- package/XR/features/WebXRControllerPointerSelection.js +15 -9
- package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
- package/XR/features/WebXRDOMOverlay.js +1 -1
- package/XR/features/WebXRDOMOverlay.js.map +1 -1
- package/XR/features/WebXRHandTracking.js +30 -30
- package/XR/features/WebXRHandTracking.js.map +1 -1
- package/XR/features/WebXRImageTracking.js +2 -2
- package/XR/features/WebXRImageTracking.js.map +1 -1
- package/XR/features/WebXRLayers.d.ts +28 -5
- package/XR/features/WebXRLayers.js +54 -20
- package/XR/features/WebXRLayers.js.map +1 -1
- package/XR/features/WebXRNearInteraction.d.ts +35 -3
- package/XR/features/WebXRNearInteraction.js +201 -40
- package/XR/features/WebXRNearInteraction.js.map +1 -1
- package/XR/motionController/webXRAbstractMotionController.js +1 -1
- package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
- package/XR/motionController/webXRMotionControllerManager.js +2 -2
- package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
- package/XR/motionController/webXRProfiledMotionController.js +1 -1
- package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
- package/XR/webXRCamera.js +17 -4
- package/XR/webXRCamera.js.map +1 -1
- package/XR/webXRDefaultExperience.js +3 -0
- package/XR/webXRDefaultExperience.js.map +1 -1
- package/XR/webXREnterExitUI.js +2 -2
- package/XR/webXREnterExitUI.js.map +1 -1
- package/XR/webXRExperienceHelper.js +3 -2
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRFeaturesManager.js +6 -6
- package/XR/webXRFeaturesManager.js.map +1 -1
- package/XR/webXRInputSource.js +3 -3
- package/XR/webXRInputSource.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
- package/XR/webXRRenderTargetTextureProvider.js +37 -18
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +1 -0
- package/XR/webXRSessionManager.js +7 -2
- package/XR/webXRSessionManager.js.map +1 -1
- package/assetContainer.d.ts +1 -1
- package/assetContainer.js +5 -4
- package/assetContainer.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.d.ts +1 -1
- package/node.js.map +1 -1
- package/package.json +31 -16
- package/scene.d.ts +5 -2
- package/scene.js +46 -19
- package/scene.js.map +1 -1
- package/types.d.ts +1 -1
- package/types.js.map +1 -1
- package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +0 -1
- package/DeviceInput/Implementations/webDeviceInputSystem.js.map +0 -1
- package/DeviceInput/Interfaces/inputInterfaces.js.map +0 -1
- package/DeviceInput/deviceInputSystem.d.ts +0 -60
- package/DeviceInput/deviceInputSystem.js +0 -84
- package/DeviceInput/deviceInputSystem.js.map +0 -1
- package/Misc/baseError.d.ts +0 -7
- package/Misc/baseError.js +0 -18
- package/Misc/baseError.js.map +0 -1
|
@@ -56,7 +56,13 @@ export declare class KeyboardInfoPre extends KeyboardInfo {
|
|
|
56
56
|
/**
|
|
57
57
|
* Defines whether the engine should skip the next onKeyboardObservable associated to this pre.
|
|
58
58
|
*/
|
|
59
|
-
|
|
59
|
+
skipOnKeyboardObservable: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Defines whether the engine should skip the next onKeyboardObservable associated to this pre.
|
|
62
|
+
* @deprecated use skipOnKeyboardObservable property instead
|
|
63
|
+
*/
|
|
64
|
+
get skipOnPointerObservable(): boolean;
|
|
65
|
+
set skipOnPointerObservable(value: boolean);
|
|
60
66
|
/**
|
|
61
67
|
* Instantiates a new keyboard pre info.
|
|
62
68
|
* This class is used to store keyboard related info for the onPreKeyboardObservable event.
|
package/Events/keyboardEvents.js
CHANGED
|
@@ -65,9 +65,19 @@ var KeyboardInfoPre = /** @class */ (function (_super) {
|
|
|
65
65
|
var _this = _super.call(this, type, event) || this;
|
|
66
66
|
_this.type = type;
|
|
67
67
|
_this.event = event;
|
|
68
|
-
_this.
|
|
68
|
+
_this.skipOnKeyboardObservable = false;
|
|
69
69
|
return _this;
|
|
70
70
|
}
|
|
71
|
+
Object.defineProperty(KeyboardInfoPre.prototype, "skipOnPointerObservable", {
|
|
72
|
+
/**
|
|
73
|
+
* Defines whether the engine should skip the next onKeyboardObservable associated to this pre.
|
|
74
|
+
* @deprecated use skipOnKeyboardObservable property instead
|
|
75
|
+
*/
|
|
76
|
+
get: function () { return this.skipOnKeyboardObservable; },
|
|
77
|
+
set: function (value) { this.skipOnKeyboardObservable = value; },
|
|
78
|
+
enumerable: false,
|
|
79
|
+
configurable: true
|
|
80
|
+
});
|
|
71
81
|
return KeyboardInfoPre;
|
|
72
82
|
}(KeyboardInfo));
|
|
73
83
|
export { KeyboardInfoPre };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboardEvents.js","sourceRoot":"","sources":["../../../sourceES6/core/Events/keyboardEvents.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH;IAAA;IASA,CAAC;IARG;;OAEG;IACoB,0BAAO,GAAG,IAAI,CAAC;IACtC;;OAEG;IACoB,wBAAK,GAAG,IAAI,CAAC;IACxC,yBAAC;CAAA,AATD,IASC;SATY,kBAAkB;AAW/B;;GAEG;AACH;IACI;;;;;OAKG;IACH;IACI;;OAEG;IACI,IAAY;IACnB;;OAEG;IACI,KAAqB;QAJrB,SAAI,GAAJ,IAAI,CAAQ;QAIZ,UAAK,GAAL,KAAK,CAAgB;IAChC,CAAC;IACL,mBAAC;AAAD,CAAC,AAjBD,IAiBC;;AAED;;;GAGG;AACH;IAAqC,mCAAY;
|
|
1
|
+
{"version":3,"file":"keyboardEvents.js","sourceRoot":"","sources":["../../../sourceES6/core/Events/keyboardEvents.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH;IAAA;IASA,CAAC;IARG;;OAEG;IACoB,0BAAO,GAAG,IAAI,CAAC;IACtC;;OAEG;IACoB,wBAAK,GAAG,IAAI,CAAC;IACxC,yBAAC;CAAA,AATD,IASC;SATY,kBAAkB;AAW/B;;GAEG;AACH;IACI;;;;;OAKG;IACH;IACI;;OAEG;IACI,IAAY;IACnB;;OAEG;IACI,KAAqB;QAJrB,SAAI,GAAJ,IAAI,CAAQ;QAIZ,UAAK,GAAL,KAAK,CAAgB;IAChC,CAAC;IACL,mBAAC;AAAD,CAAC,AAjBD,IAiBC;;AAED;;;GAGG;AACH;IAAqC,mCAAY;IAa7C;;;;;OAKG;IACH;IACI;;OAEG;IACI,IAAY;IACnB;;OAEG;IACI,KAAqB;QARhC,YASI,kBAAM,IAAI,EAAE,KAAK,CAAC,SAErB;QAPU,UAAI,GAAJ,IAAI,CAAQ;QAIZ,WAAK,GAAL,KAAK,CAAgB;QAE5B,KAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;;IAC1C,CAAC;IApBD,sBAAW,oDAAuB;QAJlC;;;WAGG;aACH,cAAuC,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;aAC9E,UAAmC,KAAK,IAAI,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC,CAAC,CAAC;;;OADN;IAqBlF,sBAAC;AAAD,CAAC,AA/BD,CAAqC,YAAY,GA+BhD","sourcesContent":["import { IKeyboardEvent } from \"./deviceInputEvents\";\r\n\r\n/**\r\n * Gather the list of keyboard event types as constants.\r\n */\r\nexport class KeyboardEventTypes {\r\n /**\r\n * The keydown event is fired when a key becomes active (pressed).\r\n */\r\n public static readonly KEYDOWN = 0x01;\r\n /**\r\n * The keyup event is fired when a key has been released.\r\n */\r\n public static readonly KEYUP = 0x02;\r\n}\r\n\r\n/**\r\n * This class is used to store keyboard related info for the onKeyboardObservable event.\r\n */\r\nexport class KeyboardInfo {\r\n /**\r\n * Instantiates a new keyboard info.\r\n * This class is used to store keyboard related info for the onKeyboardObservable event.\r\n * @param type Defines the type of event (KeyboardEventTypes)\r\n * @param event Defines the related dom event\r\n */\r\n constructor(\r\n /**\r\n * Defines the type of event (KeyboardEventTypes)\r\n */\r\n public type: number,\r\n /**\r\n * Defines the related dom event\r\n */\r\n public event: IKeyboardEvent) {\r\n }\r\n}\r\n\r\n/**\r\n * This class is used to store keyboard related info for the onPreKeyboardObservable event.\r\n * Set the skipOnKeyboardObservable property to true if you want the engine to stop any process after this event is triggered, even not calling onKeyboardObservable\r\n */\r\nexport class KeyboardInfoPre extends KeyboardInfo {\r\n /**\r\n * Defines whether the engine should skip the next onKeyboardObservable associated to this pre.\r\n */\r\n public skipOnKeyboardObservable: boolean;\r\n\r\n /**\r\n * Defines whether the engine should skip the next onKeyboardObservable associated to this pre.\r\n * @deprecated use skipOnKeyboardObservable property instead\r\n */\r\n public get skipOnPointerObservable() { return this.skipOnKeyboardObservable; }\r\n public set skipOnPointerObservable(value) { this.skipOnKeyboardObservable = value; }\r\n\r\n /**\r\n * Instantiates a new keyboard pre info.\r\n * This class is used to store keyboard related info for the onPreKeyboardObservable event.\r\n * @param type Defines the type of event (KeyboardEventTypes)\r\n * @param event Defines the related dom event\r\n */\r\n constructor(\r\n /**\r\n * Defines the type of event (KeyboardEventTypes)\r\n */\r\n public type: number,\r\n /**\r\n * Defines the related dom event\r\n */\r\n public event: IKeyboardEvent) {\r\n super(type, event);\r\n this.skipOnKeyboardObservable = false;\r\n }\r\n}\r\n"]}
|
|
@@ -48,7 +48,7 @@ var DaydreamController = /** @class */ (function (_super) {
|
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
50
50
|
// If the app or home buttons are ever made available
|
|
51
|
-
Logger.Warn("Unrecognized Daydream button index: "
|
|
51
|
+
Logger.Warn("Unrecognized Daydream button index: ".concat(buttonIdx));
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daydreamController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/daydreamController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAyB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAExH;;GAEG;AACH;IAAwC,sCAAe;IAgBnD;;;OAGG;IACH,4BAAY,SAAc;QAA1B,YACI,kBAAM,SAAS,CAAC,SAEnB;QADG,KAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC,QAAQ,CAAC;;IAC7D,CAAC;IAED;;;;OAIG;IACI,+CAAkB,GAAzB,UAA0B,KAAY,EAAE,UAAyC;QAAjF,iBASC;QARG,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,UAAC,SAAS;YAC9G,KAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;YAEtC,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACO,gDAAmB,GAA7B,UAA8B,SAAiB,EAAE,KAA4B,EAAE,OAA6B;QACxG,kEAAkE;QAClE,IAAI,SAAS,KAAK,CAAC,EAAE;YACjB,IAAI,UAAU,GAAG,IAAI,CAAC,+BAA+B,CAAC;YACtD,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACrC;SACJ;aAAM;YACH,qDAAqD;YACrD,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"daydreamController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/daydreamController.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAyB,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAExH;;GAEG;AACH;IAAwC,sCAAe;IAgBnD;;;OAGG;IACH,4BAAY,SAAc;QAA1B,YACI,kBAAM,SAAS,CAAC,SAEnB;QADG,KAAI,CAAC,cAAc,GAAG,yBAAyB,CAAC,QAAQ,CAAC;;IAC7D,CAAC;IAED;;;;OAIG;IACI,+CAAkB,GAAzB,UAA0B,KAAY,EAAE,UAAyC;QAAjF,iBASC;QARG,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,UAAC,SAAS;YAC9G,KAAI,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAClC,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;YAEtC,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,KAAI,CAAC,aAAa,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACO,gDAAmB,GAA7B,UAA8B,SAAiB,EAAE,KAA4B,EAAE,OAA6B;QACxG,kEAAkE;QAClE,IAAI,SAAS,KAAK,CAAC,EAAE;YACjB,IAAI,UAAU,GAAG,IAAI,CAAC,+BAA+B,CAAC;YACtD,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACrC;SACJ;aAAM;YACH,qDAAqD;YACrD,MAAM,CAAC,IAAI,CAAC,8CAAuC,SAAS,CAAE,CAAC,CAAC;SACnE;IACL,CAAC;IAzDD;;OAEG;IACW,iCAAc,GAAW,4CAA4C,CAAC;IAEpF;;OAEG;IACW,iCAAc,GAAW,iBAAiB,CAAC;IAEzD;;OAEG;IACoB,oCAAiB,GAAW,UAAU,CAAC,CAAC,8BAA8B;IA6CjG,yBAAC;CAAA,AA3DD,CAAwC,eAAe,GA2DtD;SA3DY,kBAAkB;AA6D/B,2BAA2B,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAClD,SAAS,EAAE,UAAC,WAAW;QACnB,OAAO,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,EAAE,UAAC,WAAW;QAChB,OAAO,IAAI,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAC,CAAC","sourcesContent":["import { Logger } from \"../../Misc/logger\";\r\nimport { Scene } from \"../../scene\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { SceneLoader } from \"../../Loading/sceneLoader\";\r\n\r\nimport { GamepadButtonChanges } from \"../../Gamepads/gamepad\";\r\nimport { WebVRController } from \"./webVRController\";\r\nimport { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from \"./poseEnabledController\";\r\n\r\n/**\r\n * Google Daydream controller\r\n */\r\nexport class DaydreamController extends WebVRController {\r\n /**\r\n * Base Url for the controller model.\r\n */\r\n public static MODEL_BASE_URL: string = 'https://controllers.babylonjs.com/generic/';\r\n\r\n /**\r\n * File name for the controller model.\r\n */\r\n public static MODEL_FILENAME: string = 'generic.babylon';\r\n\r\n /**\r\n * Gamepad Id prefix used to identify Daydream Controller.\r\n */\r\n public static readonly GAMEPAD_ID_PREFIX: string = 'Daydream'; // id is 'Daydream Controller'\r\n\r\n /**\r\n * Creates a new DaydreamController from a gamepad\r\n * @param vrGamepad the gamepad that the controller should be created from\r\n */\r\n constructor(vrGamepad: any) {\r\n super(vrGamepad);\r\n this.controllerType = PoseEnabledControllerType.DAYDREAM;\r\n }\r\n\r\n /**\r\n * Implements abstract method on WebVRController class, loading controller meshes and calling this.attachToMesh if successful.\r\n * @param scene scene in which to add meshes\r\n * @param meshLoaded optional callback function that will be called if the mesh loads successfully.\r\n */\r\n public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {\r\n SceneLoader.ImportMesh(\"\", DaydreamController.MODEL_BASE_URL, DaydreamController.MODEL_FILENAME, scene, (newMeshes) => {\r\n this._defaultModel = newMeshes[1];\r\n this.attachToMesh(this._defaultModel);\r\n\r\n if (meshLoaded) {\r\n meshLoaded(this._defaultModel);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Called once for each button that changed state since the last frame\r\n * @param buttonIdx Which button index changed\r\n * @param state New state of the button\r\n * @param changes Which properties on the state changed since last frame\r\n */\r\n protected _handleButtonChange(buttonIdx: number, state: ExtendedGamepadButton, changes: GamepadButtonChanges) {\r\n // Daydream controller only has 1 GamepadButton (on the trackpad).\r\n if (buttonIdx === 0) {\r\n let observable = this.onTriggerStateChangedObservable;\r\n if (observable) {\r\n observable.notifyObservers(state);\r\n }\r\n } else {\r\n // If the app or home buttons are ever made available\r\n Logger.Warn(`Unrecognized Daydream button index: ${buttonIdx}`);\r\n }\r\n }\r\n}\r\n\r\nPoseEnabledControllerHelper._ControllerFactories.push({\r\n canCreate: (gamepadInfo) => {\r\n return gamepadInfo.id.indexOf(DaydreamController.GAMEPAD_ID_PREFIX) === 0;\r\n },\r\n create: (gamepadInfo) => {\r\n return new DaydreamController(gamepadInfo);\r\n }\r\n});"]}
|
|
@@ -3,7 +3,7 @@ import { Observable } from "../../Misc/observable.js";
|
|
|
3
3
|
import { SceneLoader } from "../../Loading/sceneLoader.js";
|
|
4
4
|
import { WebVRController } from "./webVRController.js";
|
|
5
5
|
import { PoseEnabledControllerType, PoseEnabledControllerHelper } from "./poseEnabledController.js";
|
|
6
|
-
import {
|
|
6
|
+
import { EngineStore } from "../../Engines/engineStore.js";
|
|
7
7
|
/**
|
|
8
8
|
* Oculus Touch Controller
|
|
9
9
|
*/
|
|
@@ -206,7 +206,7 @@ export { OculusTouchController };
|
|
|
206
206
|
PoseEnabledControllerHelper._ControllerFactories.push({
|
|
207
207
|
canCreate: function (gamepadInfo) {
|
|
208
208
|
// If the headset reports being an Oculus Quest, use the Quest controller models
|
|
209
|
-
if (
|
|
209
|
+
if (EngineStore.LastCreatedEngine && EngineStore.LastCreatedEngine._vrDisplay && EngineStore.LastCreatedEngine._vrDisplay.displayName === "Oculus Quest") {
|
|
210
210
|
OculusTouchController._IsQuest = true;
|
|
211
211
|
}
|
|
212
212
|
return gamepadInfo.id.indexOf('Oculus Touch') !== -1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oculusTouchController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/oculusTouchController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Scene } from \"../../scene\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { SceneLoader } from \"../../Loading/sceneLoader\";\r\nimport { WebVRController } from \"./webVRController\";\r\nimport { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from \"./poseEnabledController\";\r\nimport { GamepadButtonChanges } from \"../../Gamepads/gamepad\";\r\nimport { Engine } from '../../Engines/engine';\r\n/**\r\n * Oculus Touch Controller\r\n */\r\nexport class OculusTouchController extends WebVRController {\r\n /**\r\n * Base Url for the controller model.\r\n */\r\n public static MODEL_BASE_URL: string = 'https://controllers.babylonjs.com/oculus/';\r\n /**\r\n * File name for the left controller model.\r\n */\r\n public static MODEL_LEFT_FILENAME: string = 'left.babylon';\r\n /**\r\n * File name for the right controller model.\r\n */\r\n public static MODEL_RIGHT_FILENAME: string = 'right.babylon';\r\n\r\n /**\r\n * Base Url for the Quest controller model.\r\n */\r\n public static QUEST_MODEL_BASE_URL: string = 'https://controllers.babylonjs.com/oculusQuest/';\r\n\r\n /**\r\n * @hidden\r\n * If the controllers are running on a device that needs the updated Quest controller models\r\n */\r\n public static _IsQuest = false;\r\n\r\n /**\r\n * Fired when the secondary trigger on this controller is modified\r\n */\r\n public onSecondaryTriggerStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n\r\n /**\r\n * Fired when the thumb rest on this controller is modified\r\n */\r\n public onThumbRestChangedObservable = new Observable<ExtendedGamepadButton>();\r\n\r\n /**\r\n * Creates a new OculusTouchController from a gamepad\r\n * @param vrGamepad the gamepad that the controller should be created from\r\n */\r\n constructor(vrGamepad: any) {\r\n super(vrGamepad);\r\n this.controllerType = PoseEnabledControllerType.OCULUS;\r\n }\r\n\r\n /**\r\n * Implements abstract method on WebVRController class, loading controller meshes and calling this.attachToMesh if successful.\r\n * @param scene scene in which to add meshes\r\n * @param meshLoaded optional callback function that will be called if the mesh loads successfully.\r\n */\r\n public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {\r\n let meshName;\r\n\r\n // Hand\r\n if (this.hand === 'left') {\r\n meshName = OculusTouchController.MODEL_LEFT_FILENAME;\r\n }\r\n else { // Right is the default if no hand is specified\r\n meshName = OculusTouchController.MODEL_RIGHT_FILENAME;\r\n }\r\n\r\n SceneLoader.ImportMesh(\"\", OculusTouchController._IsQuest ? OculusTouchController.QUEST_MODEL_BASE_URL : OculusTouchController.MODEL_BASE_URL, meshName, scene, (newMeshes) => {\r\n /*\r\n Parent Mesh name: oculus_touch_left\r\n - body\r\n - trigger\r\n - thumbstick\r\n - grip\r\n - button_y\r\n - button_x\r\n - button_enter\r\n */\r\n\r\n this._defaultModel = OculusTouchController._IsQuest ? newMeshes[0] : newMeshes[1];\r\n this.attachToMesh(this._defaultModel);\r\n if (meshLoaded) {\r\n meshLoaded(this._defaultModel);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Fired when the A button on this controller is modified\r\n */\r\n public get onAButtonStateChangedObservable() {\r\n if (this.hand === 'right') {\r\n return this.onMainButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No A button on left hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the B button on this controller is modified\r\n */\r\n public get onBButtonStateChangedObservable() {\r\n if (this.hand === 'right') {\r\n return this.onSecondaryButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No B button on left hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the X button on this controller is modified\r\n */\r\n public get onXButtonStateChangedObservable() {\r\n if (this.hand === 'left') {\r\n return this.onMainButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No X button on right hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the Y button on this controller is modified\r\n */\r\n public get onYButtonStateChangedObservable() {\r\n if (this.hand === 'left') {\r\n return this.onSecondaryButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No Y button on right hand');\r\n }\r\n }\r\n\r\n /**\r\n * Called once for each button that changed state since the last frame\r\n * 0) thumb stick (touch, press, value = pressed (0,1)). value is in this.leftStick\r\n * 1) index trigger (touch (?), press (only when value > 0.1), value 0 to 1)\r\n * 2) secondary trigger (same)\r\n * 3) A (right) X (left), touch, pressed = value\r\n * 4) B / Y\r\n * 5) thumb rest\r\n * @param buttonIdx Which button index changed\r\n * @param state New state of the button\r\n * @param changes Which properties on the state changed since last frame\r\n */\r\n protected _handleButtonChange(buttonIdx: number, state: ExtendedGamepadButton, changes: GamepadButtonChanges) {\r\n let notifyObject = state; //{ state: state, changes: changes };\r\n let triggerDirection = this.hand === 'right' ? -1 : 1;\r\n switch (buttonIdx) {\r\n case 0:\r\n this.onPadStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 1: // index trigger\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).rotation.x = -notifyObject.value * 0.20;\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).position.y = -notifyObject.value * 0.005;\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).position.z = -notifyObject.value * 0.005;\r\n }\r\n this.onTriggerStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 2: // secondary trigger\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[4])).position.x = triggerDirection * notifyObject.value * 0.0035;\r\n }\r\n this.onSecondaryTriggerStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 3:\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n if (notifyObject.pressed) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[1])).position.y = -0.001;\r\n }\r\n else {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[1])).position.y = 0;\r\n }\r\n }\r\n this.onMainButtonStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 4:\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n if (notifyObject.pressed) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = -0.001;\r\n }\r\n else {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = 0;\r\n }\r\n }\r\n this.onSecondaryButtonStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 5:\r\n this.onThumbRestChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n }\r\n }\r\n}\r\n\r\nPoseEnabledControllerHelper._ControllerFactories.push({\r\n canCreate: (gamepadInfo) => {\r\n // If the headset reports being an Oculus Quest, use the Quest controller models\r\n if (Engine.LastCreatedEngine && Engine.LastCreatedEngine._vrDisplay && Engine.LastCreatedEngine._vrDisplay.displayName === \"Oculus Quest\") {\r\n OculusTouchController._IsQuest = true;\r\n }\r\n return gamepadInfo.id.indexOf('Oculus Touch') !== -1;\r\n },\r\n create: (gamepadInfo) => {\r\n return new OculusTouchController(gamepadInfo);\r\n }\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"oculusTouchController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/oculusTouchController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Scene } from \"../../scene\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { SceneLoader } from \"../../Loading/sceneLoader\";\r\nimport { WebVRController } from \"./webVRController\";\r\nimport { PoseEnabledControllerType, ExtendedGamepadButton, PoseEnabledControllerHelper } from \"./poseEnabledController\";\r\nimport { GamepadButtonChanges } from \"../../Gamepads/gamepad\";\r\nimport { EngineStore } from \"../../Engines/engineStore\";\r\n/**\r\n * Oculus Touch Controller\r\n */\r\nexport class OculusTouchController extends WebVRController {\r\n /**\r\n * Base Url for the controller model.\r\n */\r\n public static MODEL_BASE_URL: string = 'https://controllers.babylonjs.com/oculus/';\r\n /**\r\n * File name for the left controller model.\r\n */\r\n public static MODEL_LEFT_FILENAME: string = 'left.babylon';\r\n /**\r\n * File name for the right controller model.\r\n */\r\n public static MODEL_RIGHT_FILENAME: string = 'right.babylon';\r\n\r\n /**\r\n * Base Url for the Quest controller model.\r\n */\r\n public static QUEST_MODEL_BASE_URL: string = 'https://controllers.babylonjs.com/oculusQuest/';\r\n\r\n /**\r\n * @hidden\r\n * If the controllers are running on a device that needs the updated Quest controller models\r\n */\r\n public static _IsQuest = false;\r\n\r\n /**\r\n * Fired when the secondary trigger on this controller is modified\r\n */\r\n public onSecondaryTriggerStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n\r\n /**\r\n * Fired when the thumb rest on this controller is modified\r\n */\r\n public onThumbRestChangedObservable = new Observable<ExtendedGamepadButton>();\r\n\r\n /**\r\n * Creates a new OculusTouchController from a gamepad\r\n * @param vrGamepad the gamepad that the controller should be created from\r\n */\r\n constructor(vrGamepad: any) {\r\n super(vrGamepad);\r\n this.controllerType = PoseEnabledControllerType.OCULUS;\r\n }\r\n\r\n /**\r\n * Implements abstract method on WebVRController class, loading controller meshes and calling this.attachToMesh if successful.\r\n * @param scene scene in which to add meshes\r\n * @param meshLoaded optional callback function that will be called if the mesh loads successfully.\r\n */\r\n public initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void) {\r\n let meshName;\r\n\r\n // Hand\r\n if (this.hand === 'left') {\r\n meshName = OculusTouchController.MODEL_LEFT_FILENAME;\r\n }\r\n else { // Right is the default if no hand is specified\r\n meshName = OculusTouchController.MODEL_RIGHT_FILENAME;\r\n }\r\n\r\n SceneLoader.ImportMesh(\"\", OculusTouchController._IsQuest ? OculusTouchController.QUEST_MODEL_BASE_URL : OculusTouchController.MODEL_BASE_URL, meshName, scene, (newMeshes) => {\r\n /*\r\n Parent Mesh name: oculus_touch_left\r\n - body\r\n - trigger\r\n - thumbstick\r\n - grip\r\n - button_y\r\n - button_x\r\n - button_enter\r\n */\r\n\r\n this._defaultModel = OculusTouchController._IsQuest ? newMeshes[0] : newMeshes[1];\r\n this.attachToMesh(this._defaultModel);\r\n if (meshLoaded) {\r\n meshLoaded(this._defaultModel);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Fired when the A button on this controller is modified\r\n */\r\n public get onAButtonStateChangedObservable() {\r\n if (this.hand === 'right') {\r\n return this.onMainButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No A button on left hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the B button on this controller is modified\r\n */\r\n public get onBButtonStateChangedObservable() {\r\n if (this.hand === 'right') {\r\n return this.onSecondaryButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No B button on left hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the X button on this controller is modified\r\n */\r\n public get onXButtonStateChangedObservable() {\r\n if (this.hand === 'left') {\r\n return this.onMainButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No X button on right hand');\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the Y button on this controller is modified\r\n */\r\n public get onYButtonStateChangedObservable() {\r\n if (this.hand === 'left') {\r\n return this.onSecondaryButtonStateChangedObservable;\r\n } else {\r\n throw new Error('No Y button on right hand');\r\n }\r\n }\r\n\r\n /**\r\n * Called once for each button that changed state since the last frame\r\n * 0) thumb stick (touch, press, value = pressed (0,1)). value is in this.leftStick\r\n * 1) index trigger (touch (?), press (only when value > 0.1), value 0 to 1)\r\n * 2) secondary trigger (same)\r\n * 3) A (right) X (left), touch, pressed = value\r\n * 4) B / Y\r\n * 5) thumb rest\r\n * @param buttonIdx Which button index changed\r\n * @param state New state of the button\r\n * @param changes Which properties on the state changed since last frame\r\n */\r\n protected _handleButtonChange(buttonIdx: number, state: ExtendedGamepadButton, changes: GamepadButtonChanges) {\r\n let notifyObject = state; //{ state: state, changes: changes };\r\n let triggerDirection = this.hand === 'right' ? -1 : 1;\r\n switch (buttonIdx) {\r\n case 0:\r\n this.onPadStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 1: // index trigger\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).rotation.x = -notifyObject.value * 0.20;\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).position.y = -notifyObject.value * 0.005;\r\n (<AbstractMesh>(this._defaultModel.getChildren()[3])).position.z = -notifyObject.value * 0.005;\r\n }\r\n this.onTriggerStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 2: // secondary trigger\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[4])).position.x = triggerDirection * notifyObject.value * 0.0035;\r\n }\r\n this.onSecondaryTriggerStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 3:\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n if (notifyObject.pressed) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[1])).position.y = -0.001;\r\n }\r\n else {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[1])).position.y = 0;\r\n }\r\n }\r\n this.onMainButtonStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 4:\r\n if (!OculusTouchController._IsQuest && this._defaultModel) {\r\n if (notifyObject.pressed) {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = -0.001;\r\n }\r\n else {\r\n (<AbstractMesh>(this._defaultModel.getChildren()[2])).position.y = 0;\r\n }\r\n }\r\n this.onSecondaryButtonStateChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n case 5:\r\n this.onThumbRestChangedObservable.notifyObservers(notifyObject);\r\n return;\r\n }\r\n }\r\n}\r\n\r\nPoseEnabledControllerHelper._ControllerFactories.push({\r\n canCreate: (gamepadInfo) => {\r\n // If the headset reports being an Oculus Quest, use the Quest controller models\r\n if (EngineStore.LastCreatedEngine && EngineStore.LastCreatedEngine._vrDisplay && EngineStore.LastCreatedEngine._vrDisplay.displayName === \"Oculus Quest\") {\r\n OculusTouchController._IsQuest = true;\r\n }\r\n return gamepadInfo.id.indexOf('Oculus Touch') !== -1;\r\n },\r\n create: (gamepadInfo) => {\r\n return new OculusTouchController(gamepadInfo);\r\n }\r\n});\r\n"]}
|
|
@@ -6,6 +6,7 @@ import { StickValues, GamepadButtonChanges } from "../../Gamepads/gamepad";
|
|
|
6
6
|
import { Nullable } from '../../types';
|
|
7
7
|
/**
|
|
8
8
|
* Defines the WebVRController object that represents controllers tracked in 3D space
|
|
9
|
+
* @deprecated Use WebXR instead
|
|
9
10
|
*/
|
|
10
11
|
export declare abstract class WebVRController extends PoseEnabledController {
|
|
11
12
|
/**
|
|
@@ -3,6 +3,7 @@ import { Observable } from "../../Misc/observable.js";
|
|
|
3
3
|
import { PoseEnabledController } from "./poseEnabledController.js";
|
|
4
4
|
/**
|
|
5
5
|
* Defines the WebVRController object that represents controllers tracked in 3D space
|
|
6
|
+
* @deprecated Use WebXR instead
|
|
6
7
|
*/
|
|
7
8
|
var WebVRController = /** @class */ (function (_super) {
|
|
8
9
|
__extends(WebVRController, _super);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webVRController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/webVRController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Scene } from \"../../scene\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { PoseEnabledController, ExtendedGamepadButton, MutableGamepadButton } from \"./poseEnabledController\";\r\nimport { StickValues, GamepadButtonChanges } from \"../../Gamepads/gamepad\";\r\nimport { Nullable } from '../../types';\r\n\r\n/**\r\n * Defines the WebVRController object that represents controllers tracked in 3D space\r\n */\r\nexport abstract class WebVRController extends PoseEnabledController {\r\n /**\r\n * Internal, the default controller model for the controller\r\n */\r\n protected _defaultModel: Nullable<AbstractMesh>;\r\n\r\n // Observables\r\n /**\r\n * Fired when the trigger state has changed\r\n */\r\n public onTriggerStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the main button state has changed\r\n */\r\n public onMainButtonStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the secondary button state has changed\r\n */\r\n public onSecondaryButtonStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the pad state has changed\r\n */\r\n public onPadStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when controllers stick values have changed\r\n */\r\n public onPadValuesChangedObservable = new Observable<StickValues>();\r\n\r\n /**\r\n * Array of button availible on the controller\r\n */\r\n protected _buttons: Array<MutableGamepadButton>;\r\n\r\n private _onButtonStateChange: (controlledIndex: number, buttonIndex: number, state: ExtendedGamepadButton) => void;\r\n\r\n /**\r\n * Fired when a controller button's state has changed\r\n * @param callback the callback containing the button that was modified\r\n */\r\n public onButtonStateChange(callback: (controlledIndex: number, buttonIndex: number, state: ExtendedGamepadButton) => void) {\r\n this._onButtonStateChange = callback;\r\n }\r\n\r\n /**\r\n * X and Y axis corresponding to the controllers joystick\r\n */\r\n public pad: StickValues = { x: 0, y: 0 };\r\n\r\n /**\r\n * 'left' or 'right', see https://w3c.github.io/gamepad/extensions.html#gamepadhand-enum\r\n */\r\n public hand: string;\r\n\r\n /**\r\n * The default controller model for the controller\r\n */\r\n public get defaultModel(): Nullable<AbstractMesh> {\r\n return this._defaultModel;\r\n }\r\n\r\n /**\r\n * Creates a new WebVRController from a gamepad\r\n * @param vrGamepad the gamepad that the WebVRController should be created from\r\n */\r\n constructor(vrGamepad: any) {\r\n super(vrGamepad);\r\n this._buttons = new Array<ExtendedGamepadButton>(vrGamepad.buttons.length);\r\n this.hand = vrGamepad.hand;\r\n }\r\n\r\n /**\r\n * Updates the state of the controller and mesh based on the current position and rotation of the controller\r\n */\r\n public update() {\r\n super.update();\r\n for (var index = 0; index < this._buttons.length; index++) {\r\n this._setButtonValue(this.browserGamepad.buttons[index], this._buttons[index], index);\r\n }\r\n if (this.leftStick.x !== this.pad.x || this.leftStick.y !== this.pad.y) {\r\n this.pad.x = this.leftStick.x;\r\n this.pad.y = this.leftStick.y;\r\n this.onPadValuesChangedObservable.notifyObservers(this.pad);\r\n }\r\n }\r\n\r\n /**\r\n * Function to be called when a button is modified\r\n */\r\n protected abstract _handleButtonChange(buttonIdx: number, value: ExtendedGamepadButton, changes: GamepadButtonChanges): void;\r\n\r\n /**\r\n * Loads a mesh and attaches it to the controller\r\n * @param scene the scene the mesh should be added to\r\n * @param meshLoaded callback for when the mesh has been loaded\r\n */\r\n public abstract initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void): void;\r\n\r\n private _setButtonValue(newState: ExtendedGamepadButton, currentState: ExtendedGamepadButton, buttonIndex: number) {\r\n if (!newState) {\r\n newState = {\r\n pressed: false,\r\n touched: false,\r\n value: 0\r\n };\r\n }\r\n if (!currentState) {\r\n this._buttons[buttonIndex] = {\r\n pressed: newState.pressed,\r\n touched: newState.touched,\r\n value: newState.value\r\n };\r\n return;\r\n }\r\n this._checkChanges(newState, currentState);\r\n if (this._changes.changed) {\r\n this._onButtonStateChange && this._onButtonStateChange(this.index, buttonIndex, newState);\r\n\r\n this._handleButtonChange(buttonIndex, newState, this._changes);\r\n }\r\n this._buttons[buttonIndex].pressed = newState.pressed;\r\n this._buttons[buttonIndex].touched = newState.touched;\r\n // oculus triggers are never 0, thou not touched.\r\n this._buttons[buttonIndex].value = newState.value < 0.00000001 ? 0 : newState.value;\r\n }\r\n\r\n // avoid GC, store state in a tmp object\r\n private _changes: GamepadButtonChanges = {\r\n pressChanged: false,\r\n touchChanged: false,\r\n valueChanged: false,\r\n changed: false\r\n };\r\n\r\n private _checkChanges(newState: ExtendedGamepadButton, currentState: ExtendedGamepadButton) {\r\n this._changes.pressChanged = newState.pressed !== currentState.pressed;\r\n this._changes.touchChanged = newState.touched !== currentState.touched;\r\n this._changes.valueChanged = newState.value !== currentState.value;\r\n this._changes.changed = this._changes.pressChanged || this._changes.touchChanged || this._changes.valueChanged;\r\n return this._changes;\r\n }\r\n\r\n /**\r\n * Disposes of th webVRCOntroller\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._defaultModel = null;\r\n\r\n this.onTriggerStateChangedObservable.clear();\r\n this.onMainButtonStateChangedObservable.clear();\r\n this.onSecondaryButtonStateChangedObservable.clear();\r\n this.onPadStateChangedObservable.clear();\r\n this.onPadValuesChangedObservable.clear();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"webVRController.js","sourceRoot":"","sources":["../../../../sourceES6/core/Gamepads/Controllers/webVRController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport { Scene } from \"../../scene\";\r\nimport { AbstractMesh } from \"../../Meshes/abstractMesh\";\r\nimport { PoseEnabledController, ExtendedGamepadButton, MutableGamepadButton } from \"./poseEnabledController\";\r\nimport { StickValues, GamepadButtonChanges } from \"../../Gamepads/gamepad\";\r\nimport { Nullable } from '../../types';\r\n\r\n/**\r\n * Defines the WebVRController object that represents controllers tracked in 3D space\r\n * @deprecated Use WebXR instead\r\n */\r\nexport abstract class WebVRController extends PoseEnabledController {\r\n /**\r\n * Internal, the default controller model for the controller\r\n */\r\n protected _defaultModel: Nullable<AbstractMesh>;\r\n\r\n // Observables\r\n /**\r\n * Fired when the trigger state has changed\r\n */\r\n public onTriggerStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the main button state has changed\r\n */\r\n public onMainButtonStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the secondary button state has changed\r\n */\r\n public onSecondaryButtonStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when the pad state has changed\r\n */\r\n public onPadStateChangedObservable = new Observable<ExtendedGamepadButton>();\r\n /**\r\n * Fired when controllers stick values have changed\r\n */\r\n public onPadValuesChangedObservable = new Observable<StickValues>();\r\n\r\n /**\r\n * Array of button availible on the controller\r\n */\r\n protected _buttons: Array<MutableGamepadButton>;\r\n\r\n private _onButtonStateChange: (controlledIndex: number, buttonIndex: number, state: ExtendedGamepadButton) => void;\r\n\r\n /**\r\n * Fired when a controller button's state has changed\r\n * @param callback the callback containing the button that was modified\r\n */\r\n public onButtonStateChange(callback: (controlledIndex: number, buttonIndex: number, state: ExtendedGamepadButton) => void) {\r\n this._onButtonStateChange = callback;\r\n }\r\n\r\n /**\r\n * X and Y axis corresponding to the controllers joystick\r\n */\r\n public pad: StickValues = { x: 0, y: 0 };\r\n\r\n /**\r\n * 'left' or 'right', see https://w3c.github.io/gamepad/extensions.html#gamepadhand-enum\r\n */\r\n public hand: string;\r\n\r\n /**\r\n * The default controller model for the controller\r\n */\r\n public get defaultModel(): Nullable<AbstractMesh> {\r\n return this._defaultModel;\r\n }\r\n\r\n /**\r\n * Creates a new WebVRController from a gamepad\r\n * @param vrGamepad the gamepad that the WebVRController should be created from\r\n */\r\n constructor(vrGamepad: any) {\r\n super(vrGamepad);\r\n this._buttons = new Array<ExtendedGamepadButton>(vrGamepad.buttons.length);\r\n this.hand = vrGamepad.hand;\r\n }\r\n\r\n /**\r\n * Updates the state of the controller and mesh based on the current position and rotation of the controller\r\n */\r\n public update() {\r\n super.update();\r\n for (var index = 0; index < this._buttons.length; index++) {\r\n this._setButtonValue(this.browserGamepad.buttons[index], this._buttons[index], index);\r\n }\r\n if (this.leftStick.x !== this.pad.x || this.leftStick.y !== this.pad.y) {\r\n this.pad.x = this.leftStick.x;\r\n this.pad.y = this.leftStick.y;\r\n this.onPadValuesChangedObservable.notifyObservers(this.pad);\r\n }\r\n }\r\n\r\n /**\r\n * Function to be called when a button is modified\r\n */\r\n protected abstract _handleButtonChange(buttonIdx: number, value: ExtendedGamepadButton, changes: GamepadButtonChanges): void;\r\n\r\n /**\r\n * Loads a mesh and attaches it to the controller\r\n * @param scene the scene the mesh should be added to\r\n * @param meshLoaded callback for when the mesh has been loaded\r\n */\r\n public abstract initControllerMesh(scene: Scene, meshLoaded?: (mesh: AbstractMesh) => void): void;\r\n\r\n private _setButtonValue(newState: ExtendedGamepadButton, currentState: ExtendedGamepadButton, buttonIndex: number) {\r\n if (!newState) {\r\n newState = {\r\n pressed: false,\r\n touched: false,\r\n value: 0\r\n };\r\n }\r\n if (!currentState) {\r\n this._buttons[buttonIndex] = {\r\n pressed: newState.pressed,\r\n touched: newState.touched,\r\n value: newState.value\r\n };\r\n return;\r\n }\r\n this._checkChanges(newState, currentState);\r\n if (this._changes.changed) {\r\n this._onButtonStateChange && this._onButtonStateChange(this.index, buttonIndex, newState);\r\n\r\n this._handleButtonChange(buttonIndex, newState, this._changes);\r\n }\r\n this._buttons[buttonIndex].pressed = newState.pressed;\r\n this._buttons[buttonIndex].touched = newState.touched;\r\n // oculus triggers are never 0, thou not touched.\r\n this._buttons[buttonIndex].value = newState.value < 0.00000001 ? 0 : newState.value;\r\n }\r\n\r\n // avoid GC, store state in a tmp object\r\n private _changes: GamepadButtonChanges = {\r\n pressChanged: false,\r\n touchChanged: false,\r\n valueChanged: false,\r\n changed: false\r\n };\r\n\r\n private _checkChanges(newState: ExtendedGamepadButton, currentState: ExtendedGamepadButton) {\r\n this._changes.pressChanged = newState.pressed !== currentState.pressed;\r\n this._changes.touchChanged = newState.touched !== currentState.touched;\r\n this._changes.valueChanged = newState.value !== currentState.value;\r\n this._changes.changed = this._changes.pressChanged || this._changes.touchChanged || this._changes.valueChanged;\r\n return this._changes;\r\n }\r\n\r\n /**\r\n * Disposes of th webVRCOntroller\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this._defaultModel = null;\r\n\r\n this.onTriggerStateChangedObservable.clear();\r\n this.onMainButtonStateChangedObservable.clear();\r\n this.onSecondaryButtonStateChangedObservable.clear();\r\n this.onPadStateChangedObservable.clear();\r\n this.onPadValuesChangedObservable.clear();\r\n }\r\n}\r\n"]}
|
|
@@ -193,7 +193,7 @@ var GamepadManager = /** @class */ (function () {
|
|
|
193
193
|
}
|
|
194
194
|
catch (_a) {
|
|
195
195
|
if (this._loggedErrors.indexOf(gamepad.index) === -1) {
|
|
196
|
-
Tools.Warn("Error updating gamepad "
|
|
196
|
+
Tools.Warn("Error updating gamepad ".concat(gamepad.id));
|
|
197
197
|
this._loggedErrors.push(gamepad.index);
|
|
198
198
|
}
|
|
199
199
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gamepadManager.js","sourceRoot":"","sources":["../../../sourceES6/core/Gamepads/gamepadManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../Misc/observable\";\r\nimport { IsWindowObjectExist } from \"../Misc/domManagement\";\r\nimport { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { PoseEnabledControllerHelper } from \"../Gamepads/Controllers/poseEnabledController\";\r\nimport { Xbox360Pad } from \"./xboxGamepad\";\r\nimport { Gamepad, GenericPad } from \"./gamepad\";\r\nimport { Engine } from '../Engines/engine';\r\nimport { DualShockPad } from './dualShockGamepad';\r\nimport { Tools } from \"../Misc/tools\";\r\n/**\r\n * Manager for handling gamepads\r\n */\r\nexport class GamepadManager {\r\n private _babylonGamepads: Array<Gamepad> = [];\r\n private _oneGamepadConnected: boolean = false;\r\n\r\n /** @hidden */\r\n public _isMonitoring: boolean = false;\r\n private _gamepadEventSupported: boolean;\r\n private _gamepadSupport?: () => Array<any>;\r\n\r\n /**\r\n * observable to be triggered when the gamepad controller has been connected\r\n */\r\n public onGamepadConnectedObservable: Observable<Gamepad>;\r\n\r\n /**\r\n * observable to be triggered when the gamepad controller has been disconnected\r\n */\r\n public onGamepadDisconnectedObservable = new Observable<Gamepad>();\r\n\r\n private _onGamepadConnectedEvent: Nullable<(evt: any) => void>;\r\n private _onGamepadDisconnectedEvent: Nullable<(evt: any) => void>;\r\n\r\n /**\r\n * Initializes the gamepad manager\r\n * @param _scene BabylonJS scene\r\n */\r\n constructor(private _scene?: Scene) {\r\n if (!IsWindowObjectExist()) {\r\n this._gamepadEventSupported = false;\r\n } else {\r\n this._gamepadEventSupported = 'GamepadEvent' in window;\r\n this._gamepadSupport = navigator && (navigator.getGamepads ||\r\n navigator.webkitGetGamepads || navigator.msGetGamepads || navigator.webkitGamepads);\r\n }\r\n\r\n this.onGamepadConnectedObservable = new Observable<Gamepad>((observer) => {\r\n // This will be used to raise the onGamepadConnected for all gamepads ALREADY connected\r\n for (var i in this._babylonGamepads) {\r\n let gamepad = this._babylonGamepads[i];\r\n if (gamepad && gamepad._isConnected) {\r\n this.onGamepadConnectedObservable.notifyObserver(observer, gamepad);\r\n }\r\n }\r\n });\r\n\r\n this._onGamepadConnectedEvent = (evt) => {\r\n let gamepad = evt.gamepad;\r\n\r\n if (gamepad.index in this._babylonGamepads) {\r\n if (this._babylonGamepads[gamepad.index].isConnected) {\r\n return;\r\n }\r\n }\r\n\r\n let newGamepad: Gamepad;\r\n\r\n if (this._babylonGamepads[gamepad.index]) {\r\n newGamepad = this._babylonGamepads[gamepad.index];\r\n newGamepad.browserGamepad = gamepad;\r\n newGamepad._isConnected = true;\r\n } else {\r\n newGamepad = this._addNewGamepad(gamepad);\r\n }\r\n this.onGamepadConnectedObservable.notifyObservers(newGamepad);\r\n this._startMonitoringGamepads();\r\n };\r\n\r\n this._onGamepadDisconnectedEvent = (evt) => {\r\n let gamepad = evt.gamepad;\r\n\r\n // Remove the gamepad from the list of gamepads to monitor.\r\n for (var i in this._babylonGamepads) {\r\n if (this._babylonGamepads[i].index === gamepad.index) {\r\n let disconnectedGamepad = this._babylonGamepads[i];\r\n disconnectedGamepad._isConnected = false;\r\n\r\n this.onGamepadDisconnectedObservable.notifyObservers(disconnectedGamepad);\r\n disconnectedGamepad.dispose && disconnectedGamepad.dispose();\r\n break;\r\n }\r\n }\r\n };\r\n\r\n if (this._gamepadSupport) {\r\n //first add already-connected gamepads\r\n this._updateGamepadObjects();\r\n if (this._babylonGamepads.length) {\r\n this._startMonitoringGamepads();\r\n }\r\n // Checking if the gamepad connected event is supported (like in Firefox)\r\n if (this._gamepadEventSupported) {\r\n let hostWindow = this._scene ? this._scene.getEngine().getHostWindow() : window;\r\n\r\n if (hostWindow) {\r\n hostWindow.addEventListener('gamepadconnected', this._onGamepadConnectedEvent, false);\r\n hostWindow.addEventListener('gamepaddisconnected', this._onGamepadDisconnectedEvent, false);\r\n }\r\n }\r\n else {\r\n this._startMonitoringGamepads();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * The gamepads in the game pad manager\r\n */\r\n public get gamepads(): Gamepad[] {\r\n return this._babylonGamepads;\r\n }\r\n\r\n /**\r\n * Get the gamepad controllers based on type\r\n * @param type The type of gamepad controller\r\n * @returns Nullable gamepad\r\n */\r\n public getGamepadByType(type: number = Gamepad.XBOX): Nullable<Gamepad> {\r\n for (var gamepad of this._babylonGamepads) {\r\n if (gamepad && gamepad.type === type) {\r\n return gamepad;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Disposes the gamepad manager\r\n */\r\n public dispose() {\r\n if (this._gamepadEventSupported) {\r\n if (this._onGamepadConnectedEvent) {\r\n window.removeEventListener('gamepadconnected', this._onGamepadConnectedEvent);\r\n }\r\n\r\n if (this._onGamepadDisconnectedEvent) {\r\n window.removeEventListener('gamepaddisconnected', this._onGamepadDisconnectedEvent);\r\n }\r\n this._onGamepadConnectedEvent = null;\r\n this._onGamepadDisconnectedEvent = null;\r\n }\r\n\r\n this._babylonGamepads.forEach((gamepad) => {\r\n gamepad.dispose();\r\n });\r\n\r\n this.onGamepadConnectedObservable.clear();\r\n this.onGamepadDisconnectedObservable.clear();\r\n\r\n this._oneGamepadConnected = false;\r\n this._stopMonitoringGamepads();\r\n this._babylonGamepads = [];\r\n }\r\n\r\n private _addNewGamepad(gamepad: any): Gamepad {\r\n if (!this._oneGamepadConnected) {\r\n this._oneGamepadConnected = true;\r\n }\r\n\r\n var newGamepad;\r\n var dualShock: boolean = ((<string>gamepad.id).search(\"054c\") !== -1 && (<string>gamepad.id).search(\"0ce6\") === -1);\r\n var xboxOne: boolean = ((<string>gamepad.id).search(\"Xbox One\") !== -1);\r\n if (xboxOne || (<string>gamepad.id).search(\"Xbox 360\") !== -1\r\n || (<string>gamepad.id).search(\"xinput\") !== -1\r\n || ((<string>gamepad.id).search(\"045e\") !== -1 && (<string>gamepad.id).search(\"Surface Dock\") === -1)) { // make sure the Surface Dock Extender is not detected as an xbox controller\r\n newGamepad = new Xbox360Pad(gamepad.id, gamepad.index, gamepad, xboxOne);\r\n }\r\n else if (dualShock) {\r\n newGamepad = new DualShockPad(gamepad.id, gamepad.index, gamepad);\r\n }\r\n // if pose is supported, use the (WebVR) pose enabled controller\r\n else if (gamepad.pose) {\r\n newGamepad = PoseEnabledControllerHelper.InitiateController(gamepad);\r\n }\r\n else {\r\n newGamepad = new GenericPad(gamepad.id, gamepad.index, gamepad);\r\n }\r\n this._babylonGamepads[newGamepad.index] = newGamepad;\r\n return newGamepad;\r\n }\r\n\r\n private _startMonitoringGamepads() {\r\n if (!this._isMonitoring) {\r\n this._isMonitoring = true;\r\n //back-comp\r\n if (!this._scene) {\r\n this._checkGamepadsStatus();\r\n }\r\n }\r\n }\r\n\r\n private _stopMonitoringGamepads() {\r\n this._isMonitoring = false;\r\n }\r\n\r\n private _loggedErrors: number[];\r\n\r\n /** @hidden */\r\n public _checkGamepadsStatus() {\r\n // Hack to be compatible Chrome\r\n this._updateGamepadObjects();\r\n\r\n for (var i in this._babylonGamepads) {\r\n let gamepad = this._babylonGamepads[i];\r\n if (!gamepad || !gamepad.isConnected) {\r\n continue;\r\n }\r\n try {\r\n gamepad.update();\r\n } catch {\r\n if (this._loggedErrors.indexOf(gamepad.index) === -1) {\r\n Tools.Warn(`Error updating gamepad ${gamepad.id}`);\r\n this._loggedErrors.push(gamepad.index);\r\n }\r\n }\r\n }\r\n\r\n if (this._isMonitoring && !this._scene) {\r\n Engine.QueueNewFrame(() => { this._checkGamepadsStatus(); });\r\n }\r\n }\r\n\r\n // This function is called only on Chrome, which does not properly support\r\n // connection/disconnection events and forces you to recopy again the gamepad object\r\n private _updateGamepadObjects() {\r\n var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r\n for (var i = 0; i < gamepads.length; i++) {\r\n let gamepad = gamepads[i];\r\n if (gamepad) {\r\n if (!this._babylonGamepads[gamepad.index]) {\r\n var newGamepad = this._addNewGamepad(gamepad);\r\n this.onGamepadConnectedObservable.notifyObservers(newGamepad);\r\n }\r\n else {\r\n // Forced to copy again this object for Chrome for unknown reason\r\n this._babylonGamepads[i].browserGamepad = gamepad;\r\n\r\n if (!this._babylonGamepads[i].isConnected) {\r\n this._babylonGamepads[i]._isConnected = true;\r\n this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"gamepadManager.js","sourceRoot":"","sources":["../../../sourceES6/core/Gamepads/gamepadManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../Misc/observable\";\r\nimport { IsWindowObjectExist } from \"../Misc/domManagement\";\r\nimport { Nullable } from \"../types\";\r\nimport { Scene } from \"../scene\";\r\nimport { PoseEnabledControllerHelper } from \"../Gamepads/Controllers/poseEnabledController\";\r\nimport { Xbox360Pad } from \"./xboxGamepad\";\r\nimport { Gamepad, GenericPad } from \"./gamepad\";\r\nimport { Engine } from '../Engines/engine';\r\nimport { DualShockPad } from './dualShockGamepad';\r\nimport { Tools } from \"../Misc/tools\";\r\n/**\r\n * Manager for handling gamepads\r\n */\r\nexport class GamepadManager {\r\n private _babylonGamepads: Array<Gamepad> = [];\r\n private _oneGamepadConnected: boolean = false;\r\n\r\n /** @hidden */\r\n public _isMonitoring: boolean = false;\r\n private _gamepadEventSupported: boolean;\r\n private _gamepadSupport?: () => Array<any>;\r\n\r\n /**\r\n * observable to be triggered when the gamepad controller has been connected\r\n */\r\n public onGamepadConnectedObservable: Observable<Gamepad>;\r\n\r\n /**\r\n * observable to be triggered when the gamepad controller has been disconnected\r\n */\r\n public onGamepadDisconnectedObservable = new Observable<Gamepad>();\r\n\r\n private _onGamepadConnectedEvent: Nullable<(evt: any) => void>;\r\n private _onGamepadDisconnectedEvent: Nullable<(evt: any) => void>;\r\n\r\n /**\r\n * Initializes the gamepad manager\r\n * @param _scene BabylonJS scene\r\n */\r\n constructor(private _scene?: Scene) {\r\n if (!IsWindowObjectExist()) {\r\n this._gamepadEventSupported = false;\r\n } else {\r\n this._gamepadEventSupported = 'GamepadEvent' in window;\r\n this._gamepadSupport = navigator && (navigator.getGamepads ||\r\n navigator.webkitGetGamepads || navigator.msGetGamepads || navigator.webkitGamepads);\r\n }\r\n\r\n this.onGamepadConnectedObservable = new Observable<Gamepad>((observer) => {\r\n // This will be used to raise the onGamepadConnected for all gamepads ALREADY connected\r\n for (var i in this._babylonGamepads) {\r\n let gamepad = this._babylonGamepads[i];\r\n if (gamepad && gamepad._isConnected) {\r\n this.onGamepadConnectedObservable.notifyObserver(observer, gamepad);\r\n }\r\n }\r\n });\r\n\r\n this._onGamepadConnectedEvent = (evt) => {\r\n let gamepad = evt.gamepad;\r\n\r\n if (gamepad.index in this._babylonGamepads) {\r\n if (this._babylonGamepads[gamepad.index].isConnected) {\r\n return;\r\n }\r\n }\r\n\r\n let newGamepad: Gamepad;\r\n\r\n if (this._babylonGamepads[gamepad.index]) {\r\n newGamepad = this._babylonGamepads[gamepad.index];\r\n newGamepad.browserGamepad = gamepad;\r\n newGamepad._isConnected = true;\r\n } else {\r\n newGamepad = this._addNewGamepad(gamepad);\r\n }\r\n this.onGamepadConnectedObservable.notifyObservers(newGamepad);\r\n this._startMonitoringGamepads();\r\n };\r\n\r\n this._onGamepadDisconnectedEvent = (evt) => {\r\n let gamepad = evt.gamepad;\r\n\r\n // Remove the gamepad from the list of gamepads to monitor.\r\n for (var i in this._babylonGamepads) {\r\n if (this._babylonGamepads[i].index === gamepad.index) {\r\n let disconnectedGamepad = this._babylonGamepads[i];\r\n disconnectedGamepad._isConnected = false;\r\n\r\n this.onGamepadDisconnectedObservable.notifyObservers(disconnectedGamepad);\r\n disconnectedGamepad.dispose && disconnectedGamepad.dispose();\r\n break;\r\n }\r\n }\r\n };\r\n\r\n if (this._gamepadSupport) {\r\n //first add already-connected gamepads\r\n this._updateGamepadObjects();\r\n if (this._babylonGamepads.length) {\r\n this._startMonitoringGamepads();\r\n }\r\n // Checking if the gamepad connected event is supported (like in Firefox)\r\n if (this._gamepadEventSupported) {\r\n let hostWindow = this._scene ? this._scene.getEngine().getHostWindow() : window;\r\n\r\n if (hostWindow) {\r\n hostWindow.addEventListener('gamepadconnected', this._onGamepadConnectedEvent, false);\r\n hostWindow.addEventListener('gamepaddisconnected', this._onGamepadDisconnectedEvent, false);\r\n }\r\n }\r\n else {\r\n this._startMonitoringGamepads();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * The gamepads in the game pad manager\r\n */\r\n public get gamepads(): Gamepad[] {\r\n return this._babylonGamepads;\r\n }\r\n\r\n /**\r\n * Get the gamepad controllers based on type\r\n * @param type The type of gamepad controller\r\n * @returns Nullable gamepad\r\n */\r\n public getGamepadByType(type: number = Gamepad.XBOX): Nullable<Gamepad> {\r\n for (var gamepad of this._babylonGamepads) {\r\n if (gamepad && gamepad.type === type) {\r\n return gamepad;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Disposes the gamepad manager\r\n */\r\n public dispose() {\r\n if (this._gamepadEventSupported) {\r\n if (this._onGamepadConnectedEvent) {\r\n window.removeEventListener('gamepadconnected', this._onGamepadConnectedEvent);\r\n }\r\n\r\n if (this._onGamepadDisconnectedEvent) {\r\n window.removeEventListener('gamepaddisconnected', this._onGamepadDisconnectedEvent);\r\n }\r\n this._onGamepadConnectedEvent = null;\r\n this._onGamepadDisconnectedEvent = null;\r\n }\r\n\r\n this._babylonGamepads.forEach((gamepad) => {\r\n gamepad.dispose();\r\n });\r\n\r\n this.onGamepadConnectedObservable.clear();\r\n this.onGamepadDisconnectedObservable.clear();\r\n\r\n this._oneGamepadConnected = false;\r\n this._stopMonitoringGamepads();\r\n this._babylonGamepads = [];\r\n }\r\n\r\n private _addNewGamepad(gamepad: any): Gamepad {\r\n if (!this._oneGamepadConnected) {\r\n this._oneGamepadConnected = true;\r\n }\r\n\r\n var newGamepad;\r\n var dualShock: boolean = ((<string>gamepad.id).search(\"054c\") !== -1 && (<string>gamepad.id).search(\"0ce6\") === -1);\r\n var xboxOne: boolean = ((<string>gamepad.id).search(\"Xbox One\") !== -1);\r\n if (xboxOne || (<string>gamepad.id).search(\"Xbox 360\") !== -1\r\n || (<string>gamepad.id).search(\"xinput\") !== -1\r\n || ((<string>gamepad.id).search(\"045e\") !== -1 && (<string>gamepad.id).search(\"Surface Dock\") === -1)) { // make sure the Surface Dock Extender is not detected as an xbox controller\r\n newGamepad = new Xbox360Pad(gamepad.id, gamepad.index, gamepad, xboxOne);\r\n }\r\n else if (dualShock) {\r\n newGamepad = new DualShockPad(gamepad.id, gamepad.index, gamepad);\r\n }\r\n // if pose is supported, use the (WebVR) pose enabled controller\r\n else if (gamepad.pose) {\r\n newGamepad = PoseEnabledControllerHelper.InitiateController(gamepad);\r\n }\r\n else {\r\n newGamepad = new GenericPad(gamepad.id, gamepad.index, gamepad);\r\n }\r\n this._babylonGamepads[newGamepad.index] = newGamepad;\r\n return newGamepad;\r\n }\r\n\r\n private _startMonitoringGamepads() {\r\n if (!this._isMonitoring) {\r\n this._isMonitoring = true;\r\n //back-comp\r\n if (!this._scene) {\r\n this._checkGamepadsStatus();\r\n }\r\n }\r\n }\r\n\r\n private _stopMonitoringGamepads() {\r\n this._isMonitoring = false;\r\n }\r\n\r\n private _loggedErrors: number[];\r\n\r\n /** @hidden */\r\n public _checkGamepadsStatus() {\r\n // Hack to be compatible Chrome\r\n this._updateGamepadObjects();\r\n\r\n for (var i in this._babylonGamepads) {\r\n let gamepad = this._babylonGamepads[i];\r\n if (!gamepad || !gamepad.isConnected) {\r\n continue;\r\n }\r\n try {\r\n gamepad.update();\r\n } catch {\r\n if (this._loggedErrors.indexOf(gamepad.index) === -1) {\r\n Tools.Warn(`Error updating gamepad ${gamepad.id}`);\r\n this._loggedErrors.push(gamepad.index);\r\n }\r\n }\r\n }\r\n\r\n if (this._isMonitoring && !this._scene) {\r\n Engine.QueueNewFrame(() => { this._checkGamepadsStatus(); });\r\n }\r\n }\r\n\r\n // This function is called only on Chrome, which does not properly support\r\n // connection/disconnection events and forces you to recopy again the gamepad object\r\n private _updateGamepadObjects() {\r\n var gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);\r\n for (var i = 0; i < gamepads.length; i++) {\r\n let gamepad = gamepads[i];\r\n if (gamepad) {\r\n if (!this._babylonGamepads[gamepad.index]) {\r\n var newGamepad = this._addNewGamepad(gamepad);\r\n this.onGamepadConnectedObservable.notifyObservers(newGamepad);\r\n }\r\n else {\r\n // Forced to copy again this object for Chrome for unknown reason\r\n this._babylonGamepads[i].browserGamepad = gamepad;\r\n\r\n if (!this._babylonGamepads[i].isConnected) {\r\n this._babylonGamepads[i]._isConnected = true;\r\n this.onGamepadConnectedObservable.notifyObservers(this._babylonGamepads[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -439,12 +439,6 @@ var BoundingBoxGizmo = /** @class */ (function (_super) {
|
|
|
439
439
|
// Store original parent
|
|
440
440
|
var originalParent = this.attachedMesh.parent;
|
|
441
441
|
this.attachedMesh.setParent(null);
|
|
442
|
-
// Store original skeleton override mesh
|
|
443
|
-
var originalSkeletonOverrideMesh = null;
|
|
444
|
-
if (this.attachedMesh.skeleton) {
|
|
445
|
-
originalSkeletonOverrideMesh = this.attachedMesh.skeleton.overrideMesh;
|
|
446
|
-
this.attachedMesh.skeleton.overrideMesh = null;
|
|
447
|
-
}
|
|
448
442
|
this._update();
|
|
449
443
|
// Rotate based on axis
|
|
450
444
|
if (!this.attachedMesh.rotationQuaternion) {
|
|
@@ -476,10 +470,6 @@ var BoundingBoxGizmo = /** @class */ (function (_super) {
|
|
|
476
470
|
this.attachedMesh.position.copyFrom(this._tmpVector);
|
|
477
471
|
// Restore original parent
|
|
478
472
|
this.attachedMesh.setParent(originalParent);
|
|
479
|
-
// Restore original skeleton override mesh
|
|
480
|
-
if (this.attachedMesh.skeleton) {
|
|
481
|
-
this.attachedMesh.skeleton.overrideMesh = originalSkeletonOverrideMesh;
|
|
482
|
-
}
|
|
483
473
|
}
|
|
484
474
|
this._updateRotationSpheres();
|
|
485
475
|
this._updateScaleBoxes();
|