From 5564fddc21f8bb8eab3ac30588162a84621fc985 Mon Sep 17 00:00:00 2001 From: maelstrom Date: Thu, 17 Apr 2025 02:09:40 +0200 Subject: [PATCH] fix(editor): pseudo-fix for parts getting shrunk past the limit of their snapping factor --- editor/mainglwidget.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/editor/mainglwidget.cpp b/editor/mainglwidget.cpp index 65c079f..2493284 100644 --- a/editor/mainglwidget.cpp +++ b/editor/mainglwidget.cpp @@ -1,4 +1,6 @@ #include +#include +#include #include #include #include "mainglwidget.h" @@ -211,6 +213,15 @@ void MainGLWidget::handleLinearTransform(QMouseEvent* evt) { // Find outwarwd difference localDiff = localDiff * glm::sign(draggingHandle->normal); + // Special case: minimum size to size mod snapping factor + if (snappingFactor() > 0 && glm::all(glm::lessThan((part->size + localDiff) * glm::abs(draggingHandle->normal), glm::vec3(0.01f)))) { + // I tried something fancy here, but honestly I'm not smart enough. Return; + // glm::vec3 finalSize = part->size + localDiff; + // finalSize = glm::mod(finalSize * glm::abs(draggingHandle->normal), snappingFactor()) + finalSize * (glm::vec3(1) - glm::abs(draggingHandle->normal)); + // localDiff = finalSize - part->size; + return; + } + // Minimum size of 0.01f localDiff = glm::max(part->size + localDiff, 0.01f) - part->size; diff = frame * (localDiff * glm::sign(draggingHandle->normal));