UNPKG

awv3

Version:
111 lines (86 loc) 4.05 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _three = require('three'); var THREE = _interopRequireWildcard(_three); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CombinedCamera = function (_THREE$PerspectiveCam) { (0, _inherits3.default)(CombinedCamera, _THREE$PerspectiveCam); function CombinedCamera(view) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; (0, _classCallCheck3.default)(this, CombinedCamera); var _this = (0, _possibleConstructorReturn3.default)(this, (CombinedCamera.__proto__ || (0, _getPrototypeOf2.default)(CombinedCamera)).call(this)); options = (0, _extends3.default)({ fov: 30, aspect: 0, near: 5, far: 100000, target: new THREE.Vector3(0, 0, 0), position: new THREE.Vector3(0, 0, 1000), up: new THREE.Vector3(0, 0, 1) }, options); _this.host = view; _this.fov = options.fov; _this.aspect = options.aspect; _this.near = options.near; _this.far = options.far; _this.target = options.target; _this.lookAt(_this.target); _this.position.copy(options.position); _this.up.copy(options.up); _this.updateProjectionMatrix(); _this._orthographic = false; _this._orthographicCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1); return _this; } (0, _createClass3.default)(CombinedCamera, [{ key: 'display', get: function get() { if (this._orthographic) { var halfTg = Math.tan(this.fov / 2 * THREE.Math.DEG2RAD); var focusDistance = this.target.distanceTo(this.position); var height = halfTg * focusDistance; var camera = this._orthographicCamera; camera.target = this.target; camera.left = -height * this.aspect; camera.right = height * this.aspect; camera.top = height; camera.bottom = -height; camera.near = this.near; camera.far = this.far; camera.position.copy(this.position); camera.up.copy(this.up); camera.lookAt(this.target); camera.updateProjectionMatrix(); camera.updateMatrixWorld(true); return camera; } else return this; } }, { key: 'orthographic', get: function get() { return this._orthographic; }, set: function set(value) { this._orthographic = value; this.host.invalidate && this.host.invalidate(); } }]); return CombinedCamera; }(THREE.PerspectiveCamera); exports.default = CombinedCamera;