fix(editor): align studs to dominant side when dragging
This commit is contained in:
parent
6bb01dda36
commit
530789f0b3
1 changed files with 1 additions and 1 deletions
|
@ -157,7 +157,7 @@ void MainGLWidget::handleObjectDrag(QMouseEvent* evt) {
|
||||||
// Snap to studs
|
// Snap to studs
|
||||||
Data::Vector3 draggingPartSize = draggingObject->lock()->size;
|
Data::Vector3 draggingPartSize = draggingObject->lock()->size;
|
||||||
Data::Vector3 inverseSurfaceNormal = Data::Vector3::ONE - surfaceNormal.Abs();
|
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)
|
if (snappingFactor() > 0)
|
||||||
localFrame = localFrame.Rotation() + glm::round(glm::vec3(localFrame.Position() * inverseSurfaceNormal - inverseNormalPartSize) / snappingFactor()) * snappingFactor() + inverseNormalPartSize
|
localFrame = localFrame.Rotation() + glm::round(glm::vec3(localFrame.Position() * inverseSurfaceNormal - inverseNormalPartSize) / snappingFactor()) * snappingFactor() + inverseNormalPartSize
|
||||||
+ localFrame.Position() * surfaceNormal.Abs();
|
+ localFrame.Position() * surfaceNormal.Abs();
|
||||||
|
|
Loading…
Add table
Reference in a new issue