@turbox3d/event-manager
Version:
Large-scale productivity application event management library
52 lines • 1.56 kB
JavaScript
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
import _createClass from "@babel/runtime/helpers/esm/createClass";
import { CoordinateType } from './type';
export var SceneEvent = /*#__PURE__*/function () {
function SceneEvent(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra) {
_classCallCheck(this, SceneEvent);
this.event = event;
this.getCoordinateCtrl = getCoordinateCtrl;
this.hitTargetOriginalByPoint = hitTargetOriginalByPoint;
this.extra = extra;
}
/**
* 屏幕坐标
*/
return _createClass(SceneEvent, [{
key: "screenPosition",
get: function get() {
var extra = this.extra;
if (extra && extra.mouseDownInfo) {
return {
x: extra.mouseDownInfo.x,
y: extra.mouseDownInfo.y
};
}
return {
x: this.event.clientX,
y: this.event.clientY
};
}
/**
* 画布坐标
*/
}, {
key: "canvasPosition",
get: function get() {
return this.getCoordinateCtrl().transform(this.screenPosition, CoordinateType.ScreenToCanvas);
}
/**
* 场景世界坐标
*/
}, {
key: "getScenePosition",
value: function getScenePosition(z) {
return this.getCoordinateCtrl().transform(this.screenPosition, CoordinateType.ScreenToScene, z);
}
}], [{
key: "create",
value: function create(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra) {
return new SceneEvent(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra);
}
}]);
}();