@awayjs/scene
Version:
AwayJS scene classes
69 lines (68 loc) • 2.87 kB
JavaScript
import { __extends } from "tslib";
import { Vector3D } from '@awayjs/core';
import { ControllerBase } from '../controllers/ControllerBase';
var LookAtController = /** @class */ (function (_super) {
__extends(LookAtController, _super);
// private _onLookAtObjectChangedDelegate: (event: DisplayObjectEvent) => void;
function LookAtController(targetObject, lookAtObject) {
if (targetObject === void 0) { targetObject = null; }
if (lookAtObject === void 0) { lookAtObject = null; }
var _this = _super.call(this, targetObject) || this;
_this._pOrigin = new Vector3D(0.0, 0.0, 0.0);
// this._onLookAtObjectChangedDelegate = (event: DisplayObjectEvent) => this.onLookAtObjectChanged(event);
if (lookAtObject)
_this.lookAtObject = lookAtObject;
else
_this.lookAtPosition = new Vector3D();
return _this;
}
Object.defineProperty(LookAtController.prototype, "lookAtPosition", {
get: function () {
return this._pLookAtPosition;
},
set: function (val) {
if (this._pLookAtObject) {
// this._pLookAtObject.removeEventListener(DisplayObjectEvent.SCENETRANSFORM_CHANGED,
// this._onLookAtObjectChangedDelegate);
this._pLookAtObject = null;
}
this._pLookAtPosition = val;
this.pNotifyUpdate();
},
enumerable: false,
configurable: true
});
Object.defineProperty(LookAtController.prototype, "lookAtObject", {
get: function () {
return this._pLookAtObject;
},
set: function (val) {
if (this._pLookAtPosition)
this._pLookAtPosition = null;
if (this._pLookAtObject == val)
return;
// if (this._pLookAtObject)
// this._pLookAtObject.removeEventListener(DisplayObjectEvent.SCENETRANSFORM_CHANGED,
// this._onLookAtObjectChangedDelegate);
this._pLookAtObject = val;
// if (this._pLookAtObject)
// this._pLookAtObject.addEventListener(DisplayObjectEvent.SCENETRANSFORM_CHANGED,
// this._onLookAtObjectChangedDelegate);
this.pNotifyUpdate();
},
enumerable: false,
configurable: true
});
//@override
LookAtController.prototype.update = function (interpolate) {
if (interpolate === void 0) { interpolate = true; }
if (this._pTargetObject) {
if (this._pLookAtPosition)
this._pTargetObject.lookAt(this._pLookAtPosition);
else if (this._pLookAtObject)
this._pTargetObject.lookAt(this._pLookAtObject.transform.matrix3D.position);
}
};
return LookAtController;
}(ControllerBase));
export { LookAtController };