12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import type { TransformNode } from "../../Meshes/transformNode";
- import type { WebXRCamera } from "../webXRCamera";
- import type { WebXRSessionManager } from "../webXRSessionManager";
- import { WebXRAbstractFeature } from "./WebXRAbstractFeature";
- /**
- * Options for the walking locomotion feature.
- */
- export interface IWebXRWalkingLocomotionOptions {
- /**
- * The target to be moved by walking locomotion. This should be the transform node
- * which is the root of the XR space (i.e., the WebXRCamera's parent node). However,
- * for simple cases and legacy purposes, articulating the WebXRCamera itself is also
- * supported as a deprecated feature.
- */
- locomotionTarget: WebXRCamera | TransformNode;
- }
- /**
- * A module that will enable VR locomotion by detecting when the user walks in place.
- */
- export declare class WebXRWalkingLocomotion extends WebXRAbstractFeature {
- /**
- * The module's name.
- */
- static get Name(): string;
- /**
- * The (Babylon) version of this module.
- * This is an integer representing the implementation version.
- * This number has no external basis.
- */
- static get Version(): number;
- private _sessionManager;
- private _up;
- private _forward;
- private _position;
- private _movement;
- private _walker;
- private _locomotionTarget;
- private _isLocomotionTargetWebXRCamera;
- /**
- * The target to be articulated by walking locomotion.
- * When the walking locomotion feature detects walking in place, this element's
- * X and Z coordinates will be modified to reflect locomotion. This target should
- * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or
- * the WebXRCamera itself. Note that the WebXRCamera path will modify the position
- * of the WebXRCamera directly and is thus discouraged.
- */
- get locomotionTarget(): WebXRCamera | TransformNode;
- /**
- * The target to be articulated by walking locomotion.
- * When the walking locomotion feature detects walking in place, this element's
- * X and Z coordinates will be modified to reflect locomotion. This target should
- * be either the XR space's origin (i.e., the parent node of the WebXRCamera) or
- * the WebXRCamera itself. Note that the WebXRCamera path will modify the position
- * of the WebXRCamera directly and is thus discouraged.
- */
- set locomotionTarget(locomotionTarget: WebXRCamera | TransformNode);
- /**
- * Construct a new Walking Locomotion feature.
- * @param sessionManager manager for the current XR session
- * @param options creation options, prominently including the vector target for locomotion
- */
- constructor(sessionManager: WebXRSessionManager, options: IWebXRWalkingLocomotionOptions);
- /**
- * Checks whether this feature is compatible with the current WebXR session.
- * Walking locomotion is only compatible with "immersive-vr" sessions.
- * @returns true if compatible, false otherwise
- */
- isCompatible(): boolean;
- /**
- * Attaches the feature.
- * Typically called automatically by the features manager.
- * @returns true if attach succeeded, false otherwise
- */
- attach(): boolean;
- /**
- * Detaches the feature.
- * Typically called automatically by the features manager.
- * @returns true if detach succeeded, false otherwise
- */
- detach(): boolean;
- protected _onXRFrame(frame: XRFrame): void;
- }
|