import { TransformComponent } from './TransformComponent';
import { ProjectionType } from '../const';
/**
* @class CameraTransformComponent
* The camera transform component.
* @memberof THING
* @extends THING.TransformComponent
*/
class CameraTransformComponent extends TransformComponent {
/**
* To override some interfaces when transform changed of camera.
*/
constructor() {
super();
}
// #region Overrides
onNotifyChange() {
let object = this.object;
// Make sure camera create completed
if (!object.created) {
return;
}
// We must sync the ortho distance with camera distance from position to target
if (object.projectionType == ProjectionType.Orthographic) {
object.orthoDistance = object.distance;
}
super.onNotifyChange();
}
onLookAt(position, up) {
let controller = this.object.control.getController();
controller.setTargetWorldPosition(position);
}
// #endregion
}
export { CameraTransformComponent }