Grid snapping works with offset

This commit is contained in:
2025-11-17 17:11:01 -05:00
parent 61e38a1482
commit 01d0f6e49a
2 changed files with 8 additions and 5 deletions

View File

@@ -236,13 +236,17 @@ namespace anm2ed::imgui
{
if (gridSize.x != 0)
{
minPoint.x = std::floor(minPoint.x / gridSize.x) * gridSize.x;
maxPoint.x = std::ceil(maxPoint.x / gridSize.x) * gridSize.x;
auto offsetX = static_cast<float>(gridOffset.x);
auto sizeX = static_cast<float>(gridSize.x);
minPoint.x = std::floor((minPoint.x - offsetX) / sizeX) * sizeX + offsetX;
maxPoint.x = std::ceil((maxPoint.x - offsetX) / sizeX) * sizeX + offsetX;
}
if (gridSize.y != 0)
{
minPoint.y = std::floor(minPoint.y / gridSize.y) * gridSize.y;
maxPoint.y = std::ceil(maxPoint.y / gridSize.y) * gridSize.y;
auto offsetY = static_cast<float>(gridOffset.y);
auto sizeY = static_cast<float>(gridSize.y);
minPoint.y = std::floor((minPoint.y - offsetY) / sizeY) * sizeY + offsetY;
maxPoint.y = std::ceil((maxPoint.y - offsetY) / sizeY) * sizeY + offsetY;
}
}
return std::pair{minPoint, maxPoint};

View File

@@ -1020,7 +1020,6 @@ namespace anm2ed::imgui
ImGui::BeginDisabled(!item);
{
shortcut(manager.chords[SHORTCUT_ADD]);
shortcut(manager.chords[SHORTCUT_INSERT_FRAME]);
if (ImGui::Button("Insert", widgetSize))
{