@turbox3d/event-manager
Version:
Large-scale productivity application event management library
59 lines (58 loc) • 1.85 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SceneEvent = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _type = require("./type");
var SceneEvent = exports.SceneEvent = /*#__PURE__*/function () {
function SceneEvent(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra) {
(0, _classCallCheck2["default"])(this, SceneEvent);
this.event = event;
this.getCoordinateCtrl = getCoordinateCtrl;
this.hitTargetOriginalByPoint = hitTargetOriginalByPoint;
this.extra = extra;
}
/**
* 屏幕坐标
*/
return (0, _createClass2["default"])(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, _type.CoordinateType.ScreenToCanvas);
}
/**
* 场景世界坐标
*/
}, {
key: "getScenePosition",
value: function getScenePosition(z) {
return this.getCoordinateCtrl().transform(this.screenPosition, _type.CoordinateType.ScreenToScene, z);
}
}], [{
key: "create",
value: function create(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra) {
return new SceneEvent(event, getCoordinateCtrl, hitTargetOriginalByPoint, extra);
}
}]);
}();