initial commit
This commit is contained in:
90
node_modules/webvr-polyfill/src/display-wrappers.js
generated
vendored
Normal file
90
node_modules/webvr-polyfill/src/display-wrappers.js
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* Copyright 2016 Google Inc. All Rights Reserved.
|
||||
* 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.
|
||||
*/
|
||||
var VRDisplay = require('./base.js').VRDisplay;
|
||||
var HMDVRDevice = require('./base.js').HMDVRDevice;
|
||||
var PositionSensorVRDevice = require('./base.js').PositionSensorVRDevice;
|
||||
|
||||
/**
|
||||
* Wraps a VRDisplay and exposes it as a HMDVRDevice
|
||||
*/
|
||||
function VRDisplayHMDDevice(display) {
|
||||
this.display = display;
|
||||
|
||||
this.hardwareUnitId = display.displayId;
|
||||
this.deviceId = 'webvr-polyfill:HMD:' + display.displayId;
|
||||
this.deviceName = display.displayName + ' (HMD)';
|
||||
}
|
||||
VRDisplayHMDDevice.prototype = new HMDVRDevice();
|
||||
|
||||
VRDisplayHMDDevice.prototype.getEyeParameters = function(whichEye) {
|
||||
var eyeParameters = this.display.getEyeParameters(whichEye);
|
||||
|
||||
return {
|
||||
currentFieldOfView: eyeParameters.fieldOfView,
|
||||
maximumFieldOfView: eyeParameters.fieldOfView,
|
||||
minimumFieldOfView: eyeParameters.fieldOfView,
|
||||
recommendedFieldOfView: eyeParameters.fieldOfView,
|
||||
eyeTranslation: { x: eyeParameters.offset[0], y: eyeParameters.offset[1], z: eyeParameters.offset[2] },
|
||||
renderRect: {
|
||||
x: (whichEye == 'right') ? eyeParameters.renderWidth : 0,
|
||||
y: 0,
|
||||
width: eyeParameters.renderWidth,
|
||||
height: eyeParameters.renderHeight
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
VRDisplayHMDDevice.prototype.setFieldOfView =
|
||||
function(opt_fovLeft, opt_fovRight, opt_zNear, opt_zFar) {
|
||||
// Not supported. getEyeParameters reports that the min, max, and recommended
|
||||
// FoV is all the same, so no adjustment can be made.
|
||||
};
|
||||
|
||||
// TODO: Need to hook requestFullscreen to see if a wrapped VRDisplay was passed
|
||||
// in as an option. If so we should prevent the default fullscreen behavior and
|
||||
// call VRDisplay.requestPresent instead.
|
||||
|
||||
/**
|
||||
* Wraps a VRDisplay and exposes it as a PositionSensorVRDevice
|
||||
*/
|
||||
function VRDisplayPositionSensorDevice(display) {
|
||||
this.display = display;
|
||||
|
||||
this.hardwareUnitId = display.displayId;
|
||||
this.deviceId = 'webvr-polyfill:PositionSensor: ' + display.displayId;
|
||||
this.deviceName = display.displayName + ' (PositionSensor)';
|
||||
}
|
||||
VRDisplayPositionSensorDevice.prototype = new PositionSensorVRDevice();
|
||||
|
||||
VRDisplayPositionSensorDevice.prototype.getState = function() {
|
||||
var pose = this.display.getPose();
|
||||
return {
|
||||
position: pose.position ? { x: pose.position[0], y: pose.position[1], z: pose.position[2] } : null,
|
||||
orientation: pose.orientation ? { x: pose.orientation[0], y: pose.orientation[1], z: pose.orientation[2], w: pose.orientation[3] } : null,
|
||||
linearVelocity: null,
|
||||
linearAcceleration: null,
|
||||
angularVelocity: null,
|
||||
angularAcceleration: null
|
||||
};
|
||||
};
|
||||
|
||||
VRDisplayPositionSensorDevice.prototype.resetState = function() {
|
||||
return this.positionDevice.resetPose();
|
||||
};
|
||||
|
||||
|
||||
module.exports.VRDisplayHMDDevice = VRDisplayHMDDevice;
|
||||
module.exports.VRDisplayPositionSensorDevice = VRDisplayPositionSensorDevice;
|
||||
|
||||
Reference in New Issue
Block a user