aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webidls/FakeXRDeviceController.webidl
blob: cacdb2f98197290f4c839b02e9d92a173f1d55e4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

// https://github.com/immersive-web/webxr-test-api/

[Exposed=Window, Pref="dom.webxr.test"]
interface FakeXRDeviceController {
  // Creates and attaches a XRFrameOfReference of the type specified to the device.
  // void setFrameOfReference(XRFrameOfReferenceType,  FakeXRFrameOfReferenceInit);

  // // Sets the values to be used for subsequent
  // // requestAnimationFrame() callbacks.
  [Throws] void setViews(sequence<FakeXRViewInit> views);

  [Throws] void setViewerOrigin(FakeXRRigidTransform origin);

  // Simulates the user activating the reset pose on a device.
  // void simulateResetPose();

  // Simulates the platform ending the sessions.
  // void simulateForcedEndSessions();

  // Simulates devices focusing and blurring sessions.
  // void simulateBlurSession(XRSession);
  // void simulateFocusSession(XRSession);

  // void setBoundsGeometry(Array<FakeXRBoundsPoint> boundsCoodinates)l

  // Promise<FakeXRInputSourceController>
  //     simulateInputSourceConnection(FakeXRInputSourceInit);
};

dictionary FakeXRViewInit {
  required XREye eye;
  // https://immersive-web.github.io/webxr/#view-projection-matrix
  required sequence<float> projectionMatrix;
  // https://immersive-web.github.io/webxr/#view-offset
  required FakeXRRigidTransform viewOffset;
};

dictionary FakeXRBoundsPoint {
  double x; double z;
};

dictionary FakeXRRigidTransform {
    required sequence<float> position;
    required sequence<float> orientation;
};