starry / backend /libs /three /cameras /Camera.js
k-l-lambda's picture
feat: add Python ML services (CPU mode) with model download
2b7aae2
import { Matrix4 } from '../math/Matrix4.js';
import { Object3D } from '../core/Object3D.js';
class Camera extends Object3D {
constructor() {
super();
this.type = 'Camera';
this.matrixWorldInverse = new Matrix4();
this.projectionMatrix = new Matrix4();
this.projectionMatrixInverse = new Matrix4();
}
copy(source, recursive) {
super.copy(source, recursive);
this.matrixWorldInverse.copy(source.matrixWorldInverse);
this.projectionMatrix.copy(source.projectionMatrix);
this.projectionMatrixInverse.copy(source.projectionMatrixInverse);
return this;
}
getWorldDirection(target) {
this.updateWorldMatrix(true, false);
const e = this.matrixWorld.elements;
return target.set(-e[8], -e[9], -e[10]).normalize();
}
updateMatrixWorld(force) {
super.updateMatrixWorld(force);
this.matrixWorldInverse.copy(this.matrixWorld).invert();
}
updateWorldMatrix(updateParents, updateChildren) {
super.updateWorldMatrix(updateParents, updateChildren);
this.matrixWorldInverse.copy(this.matrixWorld).invert();
}
clone() {
return new this.constructor().copy(this);
}
}
Camera.prototype.isCamera = true;
export { Camera };