glam
Version:
Experimental WebGL Engine
69 lines (43 loc) • 2.12 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = perspective;
var _transform = require('../../transform');
var _transform2 = _interopRequireDefault(_transform);
var _create = require('gl-mat3/create');
var _create2 = _interopRequireDefault(_create);
var _create3 = require('gl-mat4/create');
var _create4 = _interopRequireDefault(_create3);
var _update = require('./update');
var _update2 = _interopRequireDefault(_update);
var _updateProjection = require('./update-projection');
var _updateProjection2 = _interopRequireDefault(_updateProjection);
var _updateView = require('./update-view');
var _updateView2 = _interopRequireDefault(_updateView);
var _updateNormal = require('./update-normal');
var _updateNormal2 = _interopRequireDefault(_updateNormal);
var _updateModelView = require('./update-model-view');
var _updateModelView2 = _interopRequireDefault(_updateModelView);
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function PerspectiveCamera(fieldOfView, aspectRatio, clipping) {
this.type = ["camera", "camera/perspective"];
this.transform = (0, _transform2.default)(this);
this.aspectRatio = aspectRatio === undefined ? 1 : aspectRatio;
this.clipping = clipping === undefined ? [0.01, 100] : clipping;
this.fieldOfView = fieldOfView === undefined ? Math.PI / 4 : fov;
this.projection = (0, _create4.default)();
this.view = (0, _create4.default)();
this.normal = (0, _create2.default)();
this.modelView = (0, _create4.default)();
this.update = _update2.default.bind(null, this, {});
this.updateProjection = _updateProjection2.default.bind(null, this);
this.updateNormal = _updateNormal2.default.bind(null, this);
this.updateView = _updateView2.default.bind(null, this);
this.updateModelView = _updateModelView2.default.bind(null, this);
}
function perspective(fieldOfView, aspectRatio, clipping) {
return new PerspectiveCamera(fieldOfView, aspectRatio, clipping);
}