awv3
Version:
⚡ AWV3 embedded CAD
119 lines (92 loc) • 4.44 kB
JavaScript
;
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;