API

Interface IWebXRFeature

Defining the interface required for a (webxr) feature

interface IWebXRFeature {
    attached: boolean;
    dependsOn?: string[];
    disableAutoAttach: boolean;
    getXRSessionInitExtension?: () => Promise<XRSessionInit>;
    isDisposed: boolean;
    onFeatureAttachObservable: Observable<IWebXRFeature>;
    onFeatureDetachObservable: Observable<IWebXRFeature>;
    xrNativeFeatureName?: string;
    attach(force?: boolean): boolean;
    detach(): boolean;
    dispose(): void;
    isCompatible(): boolean;
}

Hierarchy (View Summary)

Implemented by

Index
attached: boolean

Is this feature attached

dependsOn?: string[]

A list of (Babylon WebXR) features this feature depends on

disableAutoAttach: boolean

Should auto-attach be disabled?

getXRSessionInitExtension?: () => Promise<XRSessionInit>

If this feature requires to extend the XRSessionInit object, this function will return the partial XR session init object

isDisposed: boolean

Was this feature disposed;

onFeatureAttachObservable: Observable<IWebXRFeature>

Triggered when the feature is attached

onFeatureDetachObservable: Observable<IWebXRFeature>

Triggered when the feature is detached

xrNativeFeatureName?: string

The name of the native xr feature name, if applicable (like anchor, hit-test, or hand-tracking)

  • Attach the feature to the session Will usually be called by the features manager

    Parameters

    • Optionalforce: boolean

      should attachment be forced (even when already attached)

    Returns boolean

    true if successful.

  • This function will be executed during before enabling the feature and can be used to not-allow enabling it. Note that at this point the session has NOT started, so this is purely checking if the browser supports it

    Returns boolean

    whether or not the feature is compatible in this environment