From 2bdd023afe975b5987f90b316c1aa93f6594e740 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Mon, 8 Apr 2024 12:26:42 +0300 Subject: [PATCH] Optimize sticking sensitivity. --- src/app/puzzle/layout/vppiece.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/puzzle/layout/vppiece.cpp b/src/app/puzzle/layout/vppiece.cpp index 8adbecf73..807cc37c2 100644 --- a/src/app/puzzle/layout/vppiece.cpp +++ b/src/app/puzzle/layout/vppiece.cpp @@ -60,8 +60,8 @@ QT_WARNING_POP namespace { constexpr qreal minStickyDistance = MmToPixel(3.); -constexpr qreal maxStickyDistance = MmToPixel(10.); -constexpr qreal stickyShift = MmToPixel(1.); +constexpr qreal maxStickyDistance = MmToPixel(15.); +constexpr qreal stickyShift = MmToPixel(20.); //--------------------------------------------------------------------------------------------------------------------- auto CutEdge(const QLineF &edge) -> QVector @@ -387,7 +387,11 @@ auto VPPiece::StickyPosition(qreal &dx, qreal &dy) const -> bool return false; } - const qreal extraZone = qBound(minStickyDistance, match.m_pieceGap * 50 / 100, maxStickyDistance); + qreal extraZone = qBound(minStickyDistance, match.m_pieceGap * 50 / 100, maxStickyDistance); + if (qFuzzyIsNull(match.m_pieceGap)) + { + extraZone = maxStickyDistance; + } const qreal length = match.m_closestDistance.length(); if (length > match.m_pieceGap && length <= match.m_pieceGap + extraZone)