diff --git a/editor/mainglwidget.cpp b/editor/mainglwidget.cpp index c66cb49..ec09ac9 100644 --- a/editor/mainglwidget.cpp +++ b/editor/mainglwidget.cpp @@ -157,7 +157,7 @@ void MainGLWidget::handleObjectDrag(QMouseEvent* evt) { // Snap to studs Data::Vector3 draggingPartSize = draggingObject->lock()->size; Data::Vector3 inverseSurfaceNormal = Data::Vector3::ONE - surfaceNormal.Abs(); - glm::vec3 inverseNormalPartSize = (Data::Vector3)(partSize + glm::vec3(localFrame.Rotation() * draggingPartSize)) * inverseSurfaceNormal / 2.f; + glm::vec3 inverseNormalPartSize = (Data::Vector3)(partSize - glm::vec3(localFrame.Rotation() * draggingPartSize)) * inverseSurfaceNormal / 2.f; if (snappingFactor() > 0) localFrame = localFrame.Rotation() + glm::round(glm::vec3(localFrame.Position() * inverseSurfaceNormal - inverseNormalPartSize) / snappingFactor()) * snappingFactor() + inverseNormalPartSize + localFrame.Position() * surfaceNormal.Abs();