@wcardinal/wcardinal-geditor
Version:
WebGL-based graphic editor, tester and viewer for supervisory systems
71 lines • 2.87 kB
JavaScript
import { __extends } from "tslib";
import { ESnapperModifierAnchor } from "@wcardinal/wcardinal-ui";
import { Rectangle } from "pixi.js";
var EToolSelectModifierHitArea = /** @class */ (function (_super) {
__extends(EToolSelectModifierHitArea, _super);
function EToolSelectModifierHitArea(modifier) {
var _this = _super.call(this) || this;
_this._modifier = modifier;
return _this;
}
EToolSelectModifierHitArea.prototype.contains = function (x, y) {
var modifier = this._modifier;
var s = modifier.getAnchorSize() * 2;
var t = s * 0.5;
var w = modifier.width;
var h = modifier.height;
var p = w * 0.5;
var q = h * 0.5;
var d = modifier.getAnchorRotationDistance();
var r = modifier.getAnchorRotationSize() * 2;
// Top left
if (0 - t <= x && 0 - t <= y && x <= 0 - t + s && y <= 0 - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.TOP_LEFT);
return true;
}
// Top right
if (w - t <= x && 0 - t <= y && x <= w - t + s && y <= 0 - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.TOP_RIGHT);
return true;
}
// Bottom left
if (0 - t <= x && h - t <= y && x <= 0 - t + s && y <= h - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.BOTTOM_LEFT);
return true;
}
// Bottom right
if (w - t <= x && h - t <= y && x <= w - t + s && y <= h - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.BOTTOM_RIGHT);
return true;
}
// Top Center
if (p - t <= x && 0 - t <= y && x <= p - t + s && y <= 0 - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.TOP_CENTER);
return true;
}
// Middle Right
if (w - t <= x && q - t <= y && x <= w - t + s && y <= q - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.MIDDLE_RIGHT);
return true;
}
// Bottom Center
if (p - t <= x && h - t <= y && x <= p - t + s && y <= h - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.BOTTOM_CENTER);
return true;
}
// Middle Left
if (0 - t <= x && q - t <= y && x <= 0 - t + s && y <= q - t + s) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.MIDDLE_LEFT);
return true;
}
// Rotate
if (p - r <= x && d - r <= y && x <= p + r && y <= d + r) {
modifier.setLastHitAnchor(ESnapperModifierAnchor.ROTATION);
return true;
}
return false;
};
return EToolSelectModifierHitArea;
}(Rectangle));
export { EToolSelectModifierHitArea };
//# sourceMappingURL=e-tool-select-modifier-hit-area.js.map