summaryrefslogtreecommitdiffstats
path: root/dom/vr/test/mochitest/VRSimulationDriver.js
blob: 5129485926439722781aefbf29626651875b9009 (plain)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
var VRServiceTest;
var vrMockDisplay;

var VRSimulationDriver = (function() {
  "use strict";

  var AttachWebVRDisplay = function() {
    if (vrMockDisplay) {
      // Avoid creating multiple displays
      return Promise.resolve(vrMockDisplay);
    }
    var promise = VRServiceTest.attachVRDisplay("VRDisplayTest");
    promise.then(function(display) {
      assert_true(display != null, "AttachWebVRDisplay should success.");
      vrMockDisplay = display;
    });

    return promise;
  };

  var SetVRDisplayPose = function(
    position,
    linearVelocity,
    linearAcceleration,
    orientation,
    angularVelocity,
    angularAcceleration
  ) {
    vrMockDisplay.setPose(
      position,
      linearVelocity,
      linearAcceleration,
      orientation,
      angularVelocity,
      angularAcceleration
    );
  };

  var SetEyeResolution = function(width, height) {
    vrMockDisplay.setEyeResolution(width, height);
  };

  var SetEyeParameter = function(
    eye,
    offsetX,
    offsetY,
    offsetZ,
    upDegree,
    rightDegree,
    downDegree,
    leftDegree
  ) {
    vrMockDisplay.setEyeParameter(
      eye,
      offsetX,
      offsetY,
      offsetZ,
      upDegree,
      rightDegree,
      downDegree,
      leftDegree
    );
  };

  var SetMountState = function(isMounted) {
    vrMockDisplay.setMountState(isMounted);
  };

  var UpdateVRDisplay = function() {
    vrMockDisplay.update();
  };

  var AttachVRController = function() {
    var promise = VRServiceTest.attachVRController("VRControllerTest");
    promise.then(function(controller) {
      assert_true(controller != null, "AttachVRController should success.");
    });

    return promise;
  };

  var API = {
    AttachWebVRDisplay,
    SetVRDisplayPose,
    SetEyeResolution,
    SetEyeParameter,
    SetMountState,
    UpdateVRDisplay,
    AttachVRController,

    none: false,
  };

  return API;
})();