| Index: chrome/browser/resources/vr_shell/vr_shell_ui_api.js
|
| diff --git a/chrome/browser/resources/vr_shell/vr_shell_ui_api.js b/chrome/browser/resources/vr_shell/vr_shell_ui_api.js
|
| index 8f64ed4b0d7fdc07e95808fb2849cac0851b8367..4206327badb5e0bfe7f65d4f2d0cdecc9449914e 100644
|
| --- a/chrome/browser/resources/vr_shell/vr_shell_ui_api.js
|
| +++ b/chrome/browser/resources/vr_shell/vr_shell_ui_api.js
|
| @@ -10,13 +10,13 @@ var api = (function() {
|
| * @enum {number}
|
| * @const
|
| */
|
| - var Command = Object.freeze({
|
| + var Command = {
|
| 'ADD_ELEMENT': 0,
|
| 'UPDATE_ELEMENT': 1,
|
| 'REMOVE_ELEMENT': 2,
|
| 'ADD_ANIMATION': 3,
|
| 'REMOVE_ANIMATION': 4
|
| - });
|
| + };
|
|
|
| /**
|
| * Sends one or more commands to native scene management. Commands are used
|
| @@ -43,47 +43,47 @@ var api = (function() {
|
| * @enum {number}
|
| * @const
|
| */
|
| - var XAnchoring = Object.freeze({
|
| + var XAnchoring = {
|
| 'XNONE': 0,
|
| 'XLEFT': 1,
|
| 'XRIGHT': 2
|
| - });
|
| + };
|
|
|
| /**
|
| * Enumeration of valid Anchroing for Y axis.
|
| * @enum {number}
|
| * @const
|
| */
|
| - var YAnchoring = Object.freeze({
|
| + var YAnchoring = {
|
| 'YNONE': 0,
|
| 'YTOP': 1,
|
| 'YBOTTOM': 2
|
| - });
|
| + };
|
|
|
| /**
|
| * Enumeration of actions that can be triggered by the HTML UI.
|
| * @enum {number}
|
| * @const
|
| */
|
| - var Action = Object.freeze({
|
| + var Action = {
|
| 'HISTORY_BACK': 0,
|
| 'HISTORY_FORWARD': 1,
|
| 'RELOAD': 2,
|
| 'ZOOM_OUT': 3,
|
| 'ZOOM_IN': 4,
|
| 'RELOAD_UI': 5,
|
| - });
|
| + };
|
|
|
| /**
|
| * Enumeration of modes that can be specified by the native side.
|
| * @enum {number}
|
| * @const
|
| */
|
| - var Mode = Object.freeze({
|
| + var Mode = {
|
| 'UNKNOWN': -1,
|
| 'STANDARD': 0,
|
| 'WEB_VR': 1,
|
| - });
|
| + };
|
|
|
| /**
|
| * Triggers an Action.
|
| @@ -114,8 +114,15 @@ var api = (function() {
|
| */
|
| class UiElementUpdate {
|
|
|
| + constructor() {
|
| + this.properties = {};
|
| + }
|
| +
|
| + /**
|
| + * Operates on an instance of MyClass and returns something.
|
| + */
|
| setIsContentQuad() {
|
| - this.contentQuad = true;
|
| + this.properties['contentQuad'] = true;
|
| }
|
|
|
| /**
|
| @@ -124,21 +131,21 @@ var api = (function() {
|
| * elements to automatically move with a parent.
|
| */
|
| setParentId(id) {
|
| - this.parentId = id;
|
| + this.properties['parentId'] = id;
|
| }
|
|
|
| /**
|
| * Specify the width and height (in meters) of an element.
|
| */
|
| setSize(x, y) {
|
| - this.size = { x: x, y: y };
|
| + this.properties['size'] = { x: x, y: y };
|
| }
|
|
|
| /**
|
| * Specify optional scaling of the element, and any children.
|
| */
|
| setScale(x, y, z) {
|
| - this.scale = { x: x, y: y, z: z };
|
| + this.properties['scale'] = { x: x, y: y, z: z };
|
| }
|
|
|
| /**
|
| @@ -146,16 +153,22 @@ var api = (function() {
|
| * representation (rotate around unit vector [x, y, z] by 'a' radians).
|
| */
|
| setRotation(x, y, z, a) {
|
| - this.rotation = { x: x, y: y, z: z, a: a };
|
| + this.properties['rotation'] = { x: x, y: y, z: z, a: a };
|
| }
|
|
|
| /**
|
| * Specify the translation of the element. If anchoring is specified, the
|
| * offset is applied to the anchoring position rather than the origin.
|
| * Translation is applied after scaling and rotation.
|
| + * @param {number} x
|
| + * @param {number} y
|
| + * @param {number} z
|
| */
|
| - setTranslation(x, y, z) {
|
| - this.translation = { x: x, y: y, z: z };
|
| +
|
| + // TODO - also test private member enforcement.
|
| +
|
| + setTranslation(x, y, z, w) {
|
| + this.properties['translation'] = { x: x, y: y, z: z };
|
| }
|
|
|
| /**
|
| @@ -165,22 +178,22 @@ var api = (function() {
|
| * Example: element.setAnchoring(XAnchoring.XNONE, YAnchoring.YBOTTOM);
|
| */
|
| setAnchoring(x, y) {
|
| - this.xAnchoring = x;
|
| - this.yAnchoring = y;
|
| + this.properties['xAnchoring'] = x;
|
| + this.properties['yAnchoring'] = y;
|
| }
|
|
|
| /**
|
| * Visibility controls whether the element is rendered.
|
| */
|
| setVisible(visible) {
|
| - this.visible = !!visible;
|
| + this.properties['visible'] = !!visible;
|
| }
|
|
|
| /**
|
| * Hit-testable implies that the reticle will hit the element, if visible.
|
| */
|
| setHitTestable(testable) {
|
| - this.hitTestable = !!testable;
|
| + this.properties['hitTestable'] = !!testable;
|
| }
|
|
|
| /**
|
| @@ -188,7 +201,7 @@ var api = (function() {
|
| * than the scene. Elements locked in this way should not have a parent.
|
| */
|
| setLockToFieldOfView(locked) {
|
| - this.lockToFov = !!locked;
|
| + this.properties['lockToFov'] = !!locked;
|
| }
|
| };
|
|
|
| @@ -220,25 +233,25 @@ var api = (function() {
|
| * @enum {number}
|
| * @const
|
| */
|
| - var Property = Object.freeze({
|
| + var Property = {
|
| 'COPYRECT': 0,
|
| 'SIZE': 1,
|
| 'TRANSLATION': 2,
|
| - 'ORIENTATION': 3,
|
| + 'SCALE': 3,
|
| 'ROTATION': 4
|
| - });
|
| + };
|
|
|
| /**
|
| * Enumeration of easing type.
|
| * @enum {number}
|
| * @const
|
| */
|
| - var Easing = Object.freeze({
|
| + var Easing = {
|
| 'LINEAR': 0,
|
| 'CUBICBEZIER': 1,
|
| 'EASEIN': 2,
|
| 'EASEOUT': 3
|
| - });
|
| + };
|
|
|
| /**
|
| * Base animation class. An animation can vary only one object property.
|
| @@ -246,6 +259,7 @@ var api = (function() {
|
| class Animation {
|
| constructor(elementId, durationMs) {
|
| this.meshId = elementId;
|
| + this.property = -1;
|
| this.to = {};
|
| this.easing = {};
|
| this.easing.type = api.Easing.LINEAR;
|
|
|