initial commit
This commit is contained in:
92
node_modules/webvr-ui/src/aframe-component.js
generated
vendored
Normal file
92
node_modules/webvr-ui/src/aframe-component.js
generated
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
// Copyright 2016 Google Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
/* global AFRAME */
|
||||
|
||||
import EnterVRButton from './enter-vr-button';
|
||||
import State from './states';
|
||||
|
||||
if (typeof AFRAME !== 'undefined' && AFRAME) {
|
||||
AFRAME.registerComponent('webvr-ui', {
|
||||
dependencies: ['canvas'],
|
||||
|
||||
schema: {
|
||||
enabled: {type: 'boolean', default: true},
|
||||
color: {type: 'string', default: 'white'},
|
||||
background: {type: 'string', default: 'black'},
|
||||
corners: {type: 'string', default: 'square'},
|
||||
disabledOpacity: {type: 'number', default: 0.5},
|
||||
|
||||
textEnterVRTitle: {type: 'string'},
|
||||
textExitVRTitle: {type: 'string'},
|
||||
textVRNotFoundTitle: {type: 'string'},
|
||||
},
|
||||
|
||||
init: function() {
|
||||
},
|
||||
|
||||
update: function() {
|
||||
let scene = document.querySelector('a-scene');
|
||||
scene.setAttribute('vr-mode-ui', {enabled: !this.data.enabled});
|
||||
|
||||
if (this.data.enabled) {
|
||||
if (this.enterVREl) {
|
||||
return;
|
||||
}
|
||||
|
||||
let options = {
|
||||
color: this.data.color,
|
||||
background: this.data.background,
|
||||
corners: this.data.corners,
|
||||
disabledOpacity: this.data.disabledOpacity,
|
||||
textEnterVRTitle: this.data.textEnterVRTitle,
|
||||
textExitVRTitle: this.data.textExitVRTitle,
|
||||
textVRNotFoundTitle: this.data.textVRNotFoundTitle,
|
||||
onRequestStateChange: function(state) {
|
||||
if (state == State.PRESENTING) {
|
||||
scene.enterVR();
|
||||
} else {
|
||||
scene.exitVR();
|
||||
}
|
||||
return false;
|
||||
},
|
||||
};
|
||||
|
||||
let enterVR = this.enterVR = new EnterVRButton(scene.canvas, options);
|
||||
|
||||
this.enterVREl = enterVR.domElement;
|
||||
|
||||
document.body.appendChild(enterVR.domElement);
|
||||
|
||||
enterVR.domElement.style.position = 'absolute';
|
||||
enterVR.domElement.style.bottom = '10px';
|
||||
enterVR.domElement.style.left = '50%';
|
||||
enterVR.domElement.style.transform = 'translate(-50%, -50%)';
|
||||
enterVR.domElement.style.textAlign = 'center';
|
||||
} else {
|
||||
if (this.enterVREl) {
|
||||
this.enterVREl.parentNode.removeChild(this.enterVREl);
|
||||
this.enterVR.remove();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
remove: function() {
|
||||
if (this.enterVREl) {
|
||||
this.enterVREl.parentNode.removeChild(this.enterVREl);
|
||||
this.enterVR.remove();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user