File size: 748 Bytes
1b5e137 4e1da8c 5f32ba4 4e1da8c 3b7903d 4e1da8c 3b7903d 5f32ba4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import { Camera } from "./Camera";
class PerspectiveCamera extends Camera {
fx: number;
fy: number;
near: number;
far: number;
constructor(fx: number = 1132, fy: number = 1132, near: number = 0.1, far: number = 100) {
super();
this.fx = fx;
this.fy = fy;
this.near = near;
this.far = far;
}
updateProjectionMatrix(width: number, height: number): void {
// prettier-ignore
this.projectionMatrix.set(
2 * this.fx / width, 0, 0, 0,
0, -2 * this.fy / height, 0, 0,
0, 0, this.far / (this.far - this.near), 1,
0, 0, -this.near * this.far / (this.far - this.near), 0
);
}
}
export { PerspectiveCamera };
|