@gorpacrate/core-graphics
Version:
A core library for creating shape-based graphic editors
33 lines • 1.16 kB
JavaScript
;
exports.__esModule = true;
var i = require("icepick");
var editor_events_1 = require("../editor-state/editor-events");
function snapCoordToGrid(size, x) {
return Math.round(x / size) * size;
}
exports.snapCoordToGrid = snapCoordToGrid;
function snapCoordsIfNeeded(gridState, coords) {
var on = gridState.on, size = gridState.size;
if (!on) {
return coords;
}
var x = coords.x, y = coords.y;
return i.merge(coords, {
x: snapCoordToGrid(size, x),
y: snapCoordToGrid(size, y)
});
}
exports.snapCoordsIfNeeded = snapCoordsIfNeeded;
function snapEditorInputEventCoordsIfNeeded(gridState, ev) {
if (editor_events_1.isMouseDownEvent(ev) ||
editor_events_1.isMouseUpEvent(ev) ||
editor_events_1.isMouseMoveEvent(ev) ||
editor_events_1.isMouseEnterEvent(ev) ||
editor_events_1.isMouseLeaveEvent(ev)) {
var snappedPayload = snapCoordsIfNeeded(gridState, ev.payload);
return i.assoc(ev, 'payload', snappedPayload);
}
return ev;
}
exports.snapEditorInputEventCoordsIfNeeded = snapEditorInputEventCoordsIfNeeded;
//# sourceMappingURL=grid.js.map