David Catuhe 5 vuotta sitten
vanhempi
commit
af4b28b22c

+ 27 - 30
dist/preview release/babylon.d.ts

@@ -42654,48 +42654,44 @@ declare module BABYLON {
 declare module BABYLON {
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module BABYLON {
@@ -43026,12 +43022,12 @@ declare module BABYLON {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -44056,7 +44052,7 @@ declare module BABYLON {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -44090,7 +44086,7 @@ declare module BABYLON {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -44115,10 +44111,11 @@ declare module BABYLON {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -44171,18 +44168,18 @@ declare module BABYLON {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -44374,7 +44371,7 @@ declare module BABYLON {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -68770,7 +68767,7 @@ declare module BABYLON {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
dist/preview release/babylon.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 346 - 351
dist/preview release/babylon.max.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
dist/preview release/babylon.max.js.map


+ 69 - 75
dist/preview release/babylon.module.d.ts

@@ -44144,48 +44144,44 @@ declare module "babylonjs/XR/webXRCamera" {
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module "babylonjs/XR/webXRFeaturesManager" {
@@ -44439,7 +44435,7 @@ declare module "babylonjs/XR/webXRExperienceHelper" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRControllerComponent" {
-    import { IMinimalMotionControllerObject, MotionControllerComponentType } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { IMinimalMotionControllerObject, MotionControllerComponentType } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Observable } from "babylonjs/Misc/observable";
     import { IDisposable } from "babylonjs/scene";
     /**
@@ -44527,12 +44523,12 @@ declare module "babylonjs/XR/motionController/webXRControllerComponent" {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -45026,7 +45022,7 @@ declare module "babylonjs/Loading/sceneLoader" {
         static ImportAnimationsAsync(rootUrl: string, sceneFilename?: string | File, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: SceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>): Promise<Scene>;
     }
 }
-declare module "babylonjs/XR/motionController/webXRAbstractController" {
+declare module "babylonjs/XR/motionController/webXRAbstractMotionController" {
     import { IDisposable, Scene } from "babylonjs/scene";
     import { WebXRControllerComponent } from "babylonjs/XR/motionController/webXRControllerComponent";
     import { Observable } from "babylonjs/Misc/observable";
@@ -45383,7 +45379,7 @@ declare module "babylonjs/XR/motionController/webXRAbstractController" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRGenericMotionController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -45448,7 +45444,7 @@ declare module "babylonjs/Meshes/Builders/sphereBuilder" {
 }
 declare module "babylonjs/XR/motionController/webXRProfiledMotionController" {
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
-    import { WebXRAbstractMotionController, IMotionControllerProfile } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMotionControllerProfile } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     /**
      * A profiled motion controller has its profile loaded from an online repository.
@@ -45475,7 +45471,7 @@ declare module "babylonjs/XR/motionController/webXRProfiledMotionController" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRMotionControllerManager" {
-    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     /**
      * A construction function type to create a new controller based on an xrInput object
@@ -45562,12 +45558,12 @@ declare module "babylonjs/XR/motionController/webXRMotionControllerManager" {
         static DefaultFallbacks(): void;
     }
 }
-declare module "babylonjs/XR/webXRController" {
+declare module "babylonjs/XR/webXRInputSource" {
     import { Observable } from "babylonjs/Misc/observable";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Ray } from "babylonjs/Culling/ray";
     import { Scene } from "babylonjs/scene";
-    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     /**
      * Configuration options for the WebXR controller creation
      */
@@ -45590,7 +45586,7 @@ declare module "babylonjs/XR/webXRController" {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -45624,7 +45620,7 @@ declare module "babylonjs/XR/webXRController" {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -45649,10 +45645,11 @@ declare module "babylonjs/XR/webXRController" {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -45662,7 +45659,7 @@ declare module "babylonjs/XR/webXRController" {
 declare module "babylonjs/XR/webXRInput" {
     import { Observable } from "babylonjs/Misc/observable";
     import { IDisposable } from "babylonjs/scene";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     import { WebXRCamera } from "babylonjs/XR/webXRCamera";
     /**
@@ -45710,18 +45707,18 @@ declare module "babylonjs/XR/webXRInput" {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -45805,7 +45802,7 @@ declare module "babylonjs/XR/features/WebXRAbstractFeature" {
 declare module "babylonjs/XR/features/WebXRControllerPointerSelection" {
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     import { WebXRInput } from "babylonjs/XR/webXRInput";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { Nullable } from "babylonjs/types";
     import { Color3 } from "babylonjs/Maths/math.color";
     import { WebXRAbstractFeature } from "babylonjs/XR/features/WebXRAbstractFeature";
@@ -45922,7 +45919,7 @@ declare module "babylonjs/XR/features/WebXRControllerPointerSelection" {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -72393,7 +72390,7 @@ declare module "babylonjs/XR/features/WebXRBackgroundRemover" {
 }
 declare module "babylonjs/XR/features/WebXRControllerPhysics" {
     import { WebXRAbstractFeature } from "babylonjs/XR/features/WebXRAbstractFeature";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { WebXRInput } from "babylonjs/XR/webXRInput";
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     /**
@@ -72494,7 +72491,7 @@ declare module "babylonjs/XR/features/WebXRControllerPhysics" {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden
@@ -72516,7 +72513,7 @@ declare module "babylonjs/XR/features/index" {
     export * from "babylonjs/XR/features/WebXRControllerPhysics";
 }
 declare module "babylonjs/XR/motionController/webXRMicrosoftMixedRealityController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -72600,7 +72597,7 @@ declare module "babylonjs/XR/motionController/webXRMicrosoftMixedRealityControll
     }
 }
 declare module "babylonjs/XR/motionController/webXROculusTouchMotionController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -72644,7 +72641,7 @@ declare module "babylonjs/XR/motionController/webXROculusTouchMotionController"
     }
 }
 declare module "babylonjs/XR/motionController/webXRHTCViveMotionController" {
-    import { IMinimalMotionControllerObject, MotionControllerHandness, WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { IMinimalMotionControllerObject, MotionControllerHandness, WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     /**
@@ -72679,7 +72676,7 @@ declare module "babylonjs/XR/motionController/webXRHTCViveMotionController" {
     }
 }
 declare module "babylonjs/XR/motionController/index" {
-    export * from "babylonjs/XR/motionController/webXRAbstractController";
+    export * from "babylonjs/XR/motionController/webXRAbstractMotionController";
     export * from "babylonjs/XR/motionController/webXRControllerComponent";
     export * from "babylonjs/XR/motionController/webXRGenericMotionController";
     export * from "babylonjs/XR/motionController/webXRMicrosoftMixedRealityController";
@@ -72693,7 +72690,7 @@ declare module "babylonjs/XR/index" {
     export * from "babylonjs/XR/webXREnterExitUI";
     export * from "babylonjs/XR/webXRExperienceHelper";
     export * from "babylonjs/XR/webXRInput";
-    export * from "babylonjs/XR/webXRController";
+    export * from "babylonjs/XR/webXRInputSource";
     export * from "babylonjs/XR/webXRManagedOutputCanvas";
     export * from "babylonjs/XR/webXRTypes";
     export * from "babylonjs/XR/webXRSessionManager";
@@ -115510,48 +115507,44 @@ declare module BABYLON {
 declare module BABYLON {
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module BABYLON {
@@ -115882,12 +115875,12 @@ declare module BABYLON {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -116912,7 +116905,7 @@ declare module BABYLON {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -116946,7 +116939,7 @@ declare module BABYLON {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -116971,10 +116964,11 @@ declare module BABYLON {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -117027,18 +117021,18 @@ declare module BABYLON {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -117230,7 +117224,7 @@ declare module BABYLON {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -141626,7 +141620,7 @@ declare module BABYLON {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden

+ 27 - 30
dist/preview release/documentation.d.ts

@@ -42654,48 +42654,44 @@ declare module BABYLON {
 declare module BABYLON {
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module BABYLON {
@@ -43026,12 +43022,12 @@ declare module BABYLON {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -44056,7 +44052,7 @@ declare module BABYLON {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -44090,7 +44086,7 @@ declare module BABYLON {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -44115,10 +44111,11 @@ declare module BABYLON {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -44171,18 +44168,18 @@ declare module BABYLON {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -44374,7 +44371,7 @@ declare module BABYLON {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -68770,7 +68767,7 @@ declare module BABYLON {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden

+ 69 - 75
dist/preview release/viewer/babylon.module.d.ts

@@ -44144,48 +44144,44 @@ declare module "babylonjs/XR/webXRCamera" {
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module "babylonjs/XR/webXRFeaturesManager" {
@@ -44439,7 +44435,7 @@ declare module "babylonjs/XR/webXRExperienceHelper" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRControllerComponent" {
-    import { IMinimalMotionControllerObject, MotionControllerComponentType } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { IMinimalMotionControllerObject, MotionControllerComponentType } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Observable } from "babylonjs/Misc/observable";
     import { IDisposable } from "babylonjs/scene";
     /**
@@ -44527,12 +44523,12 @@ declare module "babylonjs/XR/motionController/webXRControllerComponent" {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -45026,7 +45022,7 @@ declare module "babylonjs/Loading/sceneLoader" {
         static ImportAnimationsAsync(rootUrl: string, sceneFilename?: string | File, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: SceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>): Promise<Scene>;
     }
 }
-declare module "babylonjs/XR/motionController/webXRAbstractController" {
+declare module "babylonjs/XR/motionController/webXRAbstractMotionController" {
     import { IDisposable, Scene } from "babylonjs/scene";
     import { WebXRControllerComponent } from "babylonjs/XR/motionController/webXRControllerComponent";
     import { Observable } from "babylonjs/Misc/observable";
@@ -45383,7 +45379,7 @@ declare module "babylonjs/XR/motionController/webXRAbstractController" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRGenericMotionController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -45448,7 +45444,7 @@ declare module "babylonjs/Meshes/Builders/sphereBuilder" {
 }
 declare module "babylonjs/XR/motionController/webXRProfiledMotionController" {
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
-    import { WebXRAbstractMotionController, IMotionControllerProfile } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMotionControllerProfile } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     /**
      * A profiled motion controller has its profile loaded from an online repository.
@@ -45475,7 +45471,7 @@ declare module "babylonjs/XR/motionController/webXRProfiledMotionController" {
     }
 }
 declare module "babylonjs/XR/motionController/webXRMotionControllerManager" {
-    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     /**
      * A construction function type to create a new controller based on an xrInput object
@@ -45562,12 +45558,12 @@ declare module "babylonjs/XR/motionController/webXRMotionControllerManager" {
         static DefaultFallbacks(): void;
     }
 }
-declare module "babylonjs/XR/webXRController" {
+declare module "babylonjs/XR/webXRInputSource" {
     import { Observable } from "babylonjs/Misc/observable";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Ray } from "babylonjs/Culling/ray";
     import { Scene } from "babylonjs/scene";
-    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     /**
      * Configuration options for the WebXR controller creation
      */
@@ -45590,7 +45586,7 @@ declare module "babylonjs/XR/webXRController" {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -45624,7 +45620,7 @@ declare module "babylonjs/XR/webXRController" {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -45649,10 +45645,11 @@ declare module "babylonjs/XR/webXRController" {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -45662,7 +45659,7 @@ declare module "babylonjs/XR/webXRController" {
 declare module "babylonjs/XR/webXRInput" {
     import { Observable } from "babylonjs/Misc/observable";
     import { IDisposable } from "babylonjs/scene";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     import { WebXRCamera } from "babylonjs/XR/webXRCamera";
     /**
@@ -45710,18 +45707,18 @@ declare module "babylonjs/XR/webXRInput" {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -45805,7 +45802,7 @@ declare module "babylonjs/XR/features/WebXRAbstractFeature" {
 declare module "babylonjs/XR/features/WebXRControllerPointerSelection" {
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     import { WebXRInput } from "babylonjs/XR/webXRInput";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { Nullable } from "babylonjs/types";
     import { Color3 } from "babylonjs/Maths/math.color";
     import { WebXRAbstractFeature } from "babylonjs/XR/features/WebXRAbstractFeature";
@@ -45922,7 +45919,7 @@ declare module "babylonjs/XR/features/WebXRControllerPointerSelection" {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -72393,7 +72390,7 @@ declare module "babylonjs/XR/features/WebXRBackgroundRemover" {
 }
 declare module "babylonjs/XR/features/WebXRControllerPhysics" {
     import { WebXRAbstractFeature } from "babylonjs/XR/features/WebXRAbstractFeature";
-    import { WebXRController } from "babylonjs/XR/webXRController";
+    import { WebXRInputSource } from "babylonjs/XR/webXRInputSource";
     import { WebXRInput } from "babylonjs/XR/webXRInput";
     import { WebXRSessionManager } from "babylonjs/XR/webXRSessionManager";
     /**
@@ -72494,7 +72491,7 @@ declare module "babylonjs/XR/features/WebXRControllerPhysics" {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden
@@ -72516,7 +72513,7 @@ declare module "babylonjs/XR/features/index" {
     export * from "babylonjs/XR/features/WebXRControllerPhysics";
 }
 declare module "babylonjs/XR/motionController/webXRMicrosoftMixedRealityController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -72600,7 +72597,7 @@ declare module "babylonjs/XR/motionController/webXRMicrosoftMixedRealityControll
     }
 }
 declare module "babylonjs/XR/motionController/webXROculusTouchMotionController" {
-    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { WebXRAbstractMotionController, IMinimalMotionControllerObject, MotionControllerHandness } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     import { Scene } from "babylonjs/scene";
     /**
@@ -72644,7 +72641,7 @@ declare module "babylonjs/XR/motionController/webXROculusTouchMotionController"
     }
 }
 declare module "babylonjs/XR/motionController/webXRHTCViveMotionController" {
-    import { IMinimalMotionControllerObject, MotionControllerHandness, WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractController";
+    import { IMinimalMotionControllerObject, MotionControllerHandness, WebXRAbstractMotionController } from "babylonjs/XR/motionController/webXRAbstractMotionController";
     import { Scene } from "babylonjs/scene";
     import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
     /**
@@ -72679,7 +72676,7 @@ declare module "babylonjs/XR/motionController/webXRHTCViveMotionController" {
     }
 }
 declare module "babylonjs/XR/motionController/index" {
-    export * from "babylonjs/XR/motionController/webXRAbstractController";
+    export * from "babylonjs/XR/motionController/webXRAbstractMotionController";
     export * from "babylonjs/XR/motionController/webXRControllerComponent";
     export * from "babylonjs/XR/motionController/webXRGenericMotionController";
     export * from "babylonjs/XR/motionController/webXRMicrosoftMixedRealityController";
@@ -72693,7 +72690,7 @@ declare module "babylonjs/XR/index" {
     export * from "babylonjs/XR/webXREnterExitUI";
     export * from "babylonjs/XR/webXRExperienceHelper";
     export * from "babylonjs/XR/webXRInput";
-    export * from "babylonjs/XR/webXRController";
+    export * from "babylonjs/XR/webXRInputSource";
     export * from "babylonjs/XR/webXRManagedOutputCanvas";
     export * from "babylonjs/XR/webXRTypes";
     export * from "babylonjs/XR/webXRSessionManager";
@@ -115510,48 +115507,44 @@ declare module BABYLON {
 declare module BABYLON {
     /**
      * WebXR Camera which holds the views for the xrSession
-     * @see https://doc.babylonjs.com/how_to/webxr
+     * @see https://doc.babylonjs.com/how_to/webxr_camera
      */
     export class WebXRCamera extends FreeCamera {
         private _xrSessionManager;
-        /**
-         * Should position compensation execute on first frame.
-         * This is used when copying the position from a native (non XR) camera
-         */
-        compensateOnFirstFrame: boolean;
         private _firstFrame;
-        private _referencedPosition;
         private _referenceQuaternion;
+        private _referencedPosition;
         private _xrInvPositionCache;
         private _xrInvQuaternionCache;
-        private _realWorldHeight;
-        /**
-         * Prevent the camera from calculating the real-world height
-         * If you are not using the user's height disable this for better performance
-         */
-        disableRealWorldHeightCalculation: boolean;
         /**
-         * Return the user's height, unrelated to the current ground.
+         * Should position compensation execute on first frame.
+         * This is used when copying the position from a native (non XR) camera
          */
-        get realWorldHeight(): number;
+        compensateOnFirstFrame: boolean;
         /**
          * Creates a new webXRCamera, this should only be set at the camera after it has been updated by the xrSessionManager
          * @param name the name of the camera
          * @param scene the scene to add the camera to
+         * @param _xrSessionManager a constructed xr session manager
          */
         constructor(name: string, scene: Scene, _xrSessionManager: WebXRSessionManager);
-        private _updateNumberOfRigCameras;
+        /**
+         * Return the user's height, unrelated to the current ground.
+         * This will be the y position of this camera, when ground level is 0.
+         */
+        get realWorldHeight(): number;
+        /** @hidden */
+        _updateForDualEyeDebugging(): void;
         /**
          * Sets this camera's transformation based on a non-vr camera
          * @param otherCamera the non-vr camera to copy the transformation from
          * @param resetToBaseReferenceSpace should XR reset to the base reference space
          */
         setTransformationFromNonVRCamera(otherCamera?: Camera, resetToBaseReferenceSpace?: boolean): void;
-        /** @hidden */
-        _updateForDualEyeDebugging(): void;
+        private _updateFromXRSession;
+        private _updateNumberOfRigCameras;
         private _updateReferenceSpace;
         private _updateReferenceSpaceOffset;
-        private _updateFromXRSession;
     }
 }
 declare module BABYLON {
@@ -115882,12 +115875,12 @@ declare module BABYLON {
          * Observers registered here will be triggered when the state of a button changes
          * State change is either pressed / touched / value
          */
-        onButtonStateChanged: Observable<WebXRControllerComponent>;
+        onButtonStateChangedObservable: Observable<WebXRControllerComponent>;
         /**
          * If axes are available for this component (like a touchpad or thumbstick) the observers will be notified when
          * the axes data changes
          */
-        onAxisValueChanged: Observable<{
+        onAxisValueChangedObservable: Observable<{
             x: number;
             y: number;
         }>;
@@ -116912,7 +116905,7 @@ declare module BABYLON {
     /**
      * Represents an XR controller
      */
-    export class WebXRController {
+    export class WebXRInputSource {
         private _scene;
         /** The underlying input source for the controller  */
         inputSource: XRInputSource;
@@ -116946,7 +116939,7 @@ declare module BABYLON {
          * The object provided as event data is this controller, after associated assets were disposed.
          * uniqueId is still available.
          */
-        onDisposeObservable: Observable<WebXRController>;
+        onDisposeObservable: Observable<WebXRInputSource>;
         private _tmpQuaternion;
         private _tmpVector;
         private _uniqueId;
@@ -116971,10 +116964,11 @@ declare module BABYLON {
          */
         updateFromXRFrame(xrFrame: XRFrame, referenceSpace: XRReferenceSpace): void;
         /**
-         * Gets a world space ray coming from the controller
+         * Gets a world space ray coming from the pointer or grip
          * @param result the resulting ray
+         * @param gripIfAvailable use the grip mesh instead of the pointer, if available
          */
-        getWorldPointerRayToRef(result: Ray): void;
+        getWorldPointerRayToRef(result: Ray, gripIfAvailable?: boolean): void;
         /**
          * Disposes of the object
          */
@@ -117027,18 +117021,18 @@ declare module BABYLON {
         /**
          * XR controllers being tracked
          */
-        controllers: Array<WebXRController>;
+        controllers: Array<WebXRInputSource>;
         private _frameObserver;
         private _sessionEndedObserver;
         private _sessionInitObserver;
         /**
          * Event when a controller has been connected/added
          */
-        onControllerAddedObservable: Observable<WebXRController>;
+        onControllerAddedObservable: Observable<WebXRInputSource>;
         /**
          * Event when a controller has been removed/disconnected
          */
-        onControllerRemovedObservable: Observable<WebXRController>;
+        onControllerRemovedObservable: Observable<WebXRInputSource>;
         /**
          * Initializes the WebXRInput
          * @param xrSessionManager the xr session manager for this session
@@ -117230,7 +117224,7 @@ declare module BABYLON {
          * @param id the pointer id to search for
          * @returns the controller that correlates to this id or null if not found
          */
-        getXRControllerByPointerId(id: number): Nullable<WebXRController>;
+        getXRControllerByPointerId(id: number): Nullable<WebXRInputSource>;
         protected _onXRFrame(_xrFrame: XRFrame): void;
         private _attachController;
         private _attachScreenRayMode;
@@ -141626,7 +141620,7 @@ declare module BABYLON {
          * Manually add a controller (if no xrInput was provided or physics engine was not enabled)
          * @param xrController the controller to add
          */
-        addController(xrController: WebXRController): void;
+        addController(xrController: WebXRInputSource): void;
         private _debugMode;
         /**
          * @hidden

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 23 - 23
dist/preview release/viewer/babylon.viewer.js


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
dist/preview release/viewer/babylon.viewer.max.js