UNPKG

awv3

Version:
119 lines (92 loc) 4.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _defineProperty = require("babel-runtime/core-js/object/define-property"); var _defineProperty2 = _interopRequireDefault(_defineProperty); 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 _default = function (_THREE$PerspectiveCam) { (0, _inherits3.default)(_default, _THREE$PerspectiveCam); function _default() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck3.default)(this, _default); var _this = (0, _possibleConstructorReturn3.default)(this, (_default.__proto__ || (0, _getPrototypeOf2.default)(_default)).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), host: {}, hostProperty: "camera" }, options); _this.host = options.host; _this.hostProperty = options.hostProperty; _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._isOrthographic = false; _this._orthographicCamera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 1); (0, _defineProperty2.default)(_this.host, _this.hostProperty, { configurable: true, get: function get() { if (_this._isOrthographic) { 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; } }); return _this; } (0, _createClass3.default)(_default, [{ key: "isOrthographic", get: function get() { return this._isOrthographic; }, set: function set(value) { this._isOrthographic = value; this.host.invalidate && this.host.invalidate(); } }]); return _default; }(THREE.PerspectiveCamera); exports.default = _default;