UNPKG

@gorpacrate/core-graphics

Version:

A core library for creating shape-based graphic editors

33 lines 1.16 kB
"use strict"; 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