Source: components/CameraTransformComponent.js

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 }