|
@@ -1,80 +0,0 @@
|
|
|
-var __extends = this.__extends || function (d, b) {
|
|
|
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
|
- function __() { this.constructor = d; }
|
|
|
- __.prototype = b.prototype;
|
|
|
- d.prototype = new __();
|
|
|
-};
|
|
|
-var BABYLON;
|
|
|
-(function (BABYLON) {
|
|
|
- var WebVRCamera = (function (_super) {
|
|
|
- __extends(WebVRCamera, _super);
|
|
|
- function WebVRCamera(name, position, scene) {
|
|
|
- _super.call(this, name, position, scene);
|
|
|
- this._hmdDevice = null;
|
|
|
- this._sensorDevice = null;
|
|
|
- this._cacheState = null;
|
|
|
- this._cacheQuaternion = new BABYLON.Quaternion();
|
|
|
- this._cacheRotation = BABYLON.Vector3.Zero();
|
|
|
- this._vrEnabled = false;
|
|
|
- this._getWebVRDevices = this._getWebVRDevices.bind(this);
|
|
|
- }
|
|
|
- WebVRCamera.prototype._getWebVRDevices = function (devices) {
|
|
|
- var size = devices.length;
|
|
|
- var i = 0;
|
|
|
-
|
|
|
- // Reset devices.
|
|
|
- this._sensorDevice = null;
|
|
|
- this._hmdDevice = null;
|
|
|
-
|
|
|
- while (i < size && this._hmdDevice === null) {
|
|
|
- if (devices[i] instanceof HMDVRDevice) {
|
|
|
- this._hmdDevice = devices[i];
|
|
|
- }
|
|
|
- i++;
|
|
|
- }
|
|
|
-
|
|
|
- i = 0;
|
|
|
-
|
|
|
- while (i < size && this._sensorDevice === null) {
|
|
|
- if (devices[i] instanceof PositionSensorVRDevice && (!this._hmdDevice || devices[i].hardwareUnitId === this._hmdDevice.hardwareUnitId)) {
|
|
|
- this._sensorDevice = devices[i];
|
|
|
- }
|
|
|
- i++;
|
|
|
- }
|
|
|
-
|
|
|
- this._vrEnabled = this._sensorDevice && this._hmdDevice ? true : false;
|
|
|
- };
|
|
|
-
|
|
|
- WebVRCamera.prototype._update = function () {
|
|
|
- if (this._vrEnabled) {
|
|
|
- this._cacheState = this._sensorDevice.getState();
|
|
|
- this._cacheQuaternion.copyFromFloats(this._cacheState.orientation.x, this._cacheState.orientation.y, this._cacheState.orientation.z, this._cacheState.orientation.w);
|
|
|
- this._cacheQuaternion.toEulerAnglesToRef(this._cacheRotation);
|
|
|
-
|
|
|
- this.rotation.x = -this._cacheRotation.z;
|
|
|
- this.rotation.y = -this._cacheRotation.y;
|
|
|
- this.rotation.z = this._cacheRotation.x;
|
|
|
- }
|
|
|
-
|
|
|
- _super.prototype._update.call(this);
|
|
|
- };
|
|
|
-
|
|
|
- WebVRCamera.prototype.attachControl = function (element, noPreventDefault) {
|
|
|
- _super.prototype.attachControl.call(this, element, noPreventDefault);
|
|
|
-
|
|
|
- if (navigator.getVRDevices) {
|
|
|
- navigator.getVRDevices().then(this._getWebVRDevices);
|
|
|
- } else if (navigator.mozGetVRDevices) {
|
|
|
- navigator.mozGetVRDevices(this._getWebVRDevices);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- WebVRCamera.prototype.detachControl = function (element) {
|
|
|
- _super.prototype.detachControl.call(this, element);
|
|
|
- this._vrEnabled = false;
|
|
|
- };
|
|
|
- return WebVRCamera;
|
|
|
- })(BABYLON.OculusCamera);
|
|
|
- BABYLON.WebVRCamera = WebVRCamera;
|
|
|
-})(BABYLON || (BABYLON = {}));
|
|
|
-//# sourceMappingURL=babylon.webVRCamera.js.map
|