@turbox3d/event-manager
Version:
Large-scale productivity application event management library
87 lines (86 loc) • 2.88 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CoordinateController = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _type = require("./type");
var CoordinateController = exports.CoordinateController = /*#__PURE__*/function () {
function CoordinateController(_ref) {
var getCanvasRectImpl = _ref.getCanvasRectImpl,
canvasToSceneImpl = _ref.canvasToSceneImpl,
sceneToCanvasImpl = _ref.sceneToCanvasImpl;
(0, _classCallCheck2["default"])(this, CoordinateController);
this.getCanvasRectImpl = getCanvasRectImpl;
this.canvasToSceneImpl = canvasToSceneImpl;
this.sceneToCanvasImpl = sceneToCanvasImpl;
}
/**
* 将坐标进行转化
*/
return (0, _createClass2["default"])(CoordinateController, [{
key: "transform",
value: function transform(point, type, z) {
switch (type) {
case _type.CoordinateType.ScreenToCanvas:
return this.screenToCanvas(point);
case _type.CoordinateType.ScreenToScene:
return this.screenToScene(point, z);
case _type.CoordinateType.CanvasToScreen:
return this.canvasToScreen(point);
case _type.CoordinateType.CanvasToScene:
return this.canvasToScene(point, z);
case _type.CoordinateType.SceneToScreen:
return this.sceneToScreen(point);
case _type.CoordinateType.SceneToCanvas:
return this.sceneToCanvas(point);
default:
return point;
}
}
}, {
key: "screenToCanvas",
value: function screenToCanvas(point) {
var _this$getCanvasRectIm = this.getCanvasRectImpl(),
x = _this$getCanvasRectIm.x,
y = _this$getCanvasRectIm.y;
return {
x: point.x - x,
y: point.y - y
};
}
}, {
key: "canvasToScreen",
value: function canvasToScreen(point) {
var _this$getCanvasRectIm2 = this.getCanvasRectImpl(),
x = _this$getCanvasRectIm2.x,
y = _this$getCanvasRectIm2.y;
return {
x: point.x + x,
y: point.y + y
};
}
}, {
key: "canvasToScene",
value: function canvasToScene(point, z) {
return this.canvasToSceneImpl(point, z);
}
}, {
key: "sceneToCanvas",
value: function sceneToCanvas(point) {
return this.sceneToCanvasImpl(point);
}
}, {
key: "screenToScene",
value: function screenToScene(point, z) {
return this.canvasToScene(this.screenToCanvas(point), z);
}
}, {
key: "sceneToScreen",
value: function sceneToScreen(point) {
return this.canvasToScreen(this.sceneToCanvas(point));
}
}]);
}();