Source: components/ShadowLightTransformComponent.js

import { TransformComponent } from './TransformComponent';

const __ = {
	private: Symbol('private'),
}

/**
 * @class ShadowLightTransformComponent
 * The shadow light transform component.
 * @memberof THING
 * @extends THING.TransformComponent
 */
class ShadowLightTransformComponent extends TransformComponent {

	/**
	 * The transform component of light what can cast shadow.
	 */
	constructor() {
		super();

		this[__.private] = {};
		let _private = this[__.private];

		_private.target = [0, 0, 0];
	}

	// #region Overrides

	onLookAt(position, up) {
		let _private = this[__.private];

		_private.target = position;
	}

	// #endregion

	get target() {
		let _private = this[__.private];

		return _private.target;
	}
	set target(value) {
		this.object.lookAt(value, { always: false });
	}

}

export { ShadowLightTransformComponent }