2016-10-07 03:14:07 +00:00
|
|
|
import * as THREE from 'three';
|
2016-09-12 19:54:07 +00:00
|
|
|
|
2016-10-07 03:14:07 +00:00
|
|
|
import Config from '../../data/config';
|
2016-09-12 19:54:07 +00:00
|
|
|
|
|
|
|
export default class Camera {
|
|
|
|
constructor(renderer) {
|
|
|
|
const width = renderer.domElement.width;
|
|
|
|
const height = renderer.domElement.height;
|
|
|
|
|
|
|
|
this.threeCamera = new THREE.PerspectiveCamera(Config.camera.fov, width / height, Config.camera.near, Config.camera.far);
|
|
|
|
this.threeCamera.position.set(Config.camera.posX, Config.camera.posY, Config.camera.posZ);
|
|
|
|
|
|
|
|
this.updateSize(renderer);
|
|
|
|
|
|
|
|
// listeners
|
|
|
|
window.addEventListener('resize', () => this.updateSize(renderer), false);
|
|
|
|
}
|
|
|
|
|
|
|
|
updateSize(renderer) {
|
2016-10-07 03:14:07 +00:00
|
|
|
this.threeCamera.aspect = renderer.domElement.width * Config.dpr / renderer.domElement.height * Config.dpr;
|
2016-09-12 19:54:07 +00:00
|
|
|
this.threeCamera.updateProjectionMatrix();
|
|
|
|
}
|
|
|
|
}
|