Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP4
leocad
0002-Disabled-relative-movement-when-moving-pie...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0002-Disabled-relative-movement-when-moving-pieces-withou.patch of Package leocad
From 249fa262f7957e7ff849e78af35c5131af447fa6 Mon Sep 17 00:00:00 2001 From: Leonardo Zide <leozide@gmail.com> Date: Sat, 24 Apr 2021 10:15:13 -0700 Subject: [PATCH 2/4] Disabled relative movement when moving pieces without using the arrows. --- common/lc_mainwindow.cpp | 2 +- common/lc_model.cpp | 8 ++++---- common/lc_model.h | 8 ++++---- common/lc_view.cpp | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp index 198260ed..d34e1272 100644 --- a/common/lc_mainwindow.cpp +++ b/common/lc_mainwindow.cpp @@ -62,7 +62,7 @@ lcMainWindow::lcMainWindow() mMoveXYSnapIndex = 4; mMoveZSnapIndex = 3; mAngleSnapIndex = 5; - mRelativeTransform = false; + mRelativeTransform = true; mLocalTransform = false; mCurrentPieceInfo = nullptr; mSelectionMode = lcSelectionMode::Single; diff --git a/common/lc_model.cpp b/common/lc_model.cpp index f5277b12..ec80ec0f 100644 --- a/common/lc_model.cpp +++ b/common/lc_model.cpp @@ -2596,12 +2596,12 @@ bool lcModel::RemoveSelectedObjects() return RemovedPiece || RemovedCamera || RemovedLight; } -void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool Relative, bool AlternateButtonDrag, bool Update, bool Checkpoint) +void lcModel::MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Update, bool Checkpoint) { bool Moved = false; lcMatrix33 RelativeRotation; - if (Relative) + if (AllowRelative) RelativeRotation = GetRelativeRotation(); else RelativeRotation = lcMatrix33Identity(); @@ -4071,12 +4071,12 @@ void lcModel::UpdateCameraTool(const lcVector3& Position) UpdateAllViews(); } -void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AlternateButtonDrag) +void lcModel::UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag) { lcVector3 PieceDistance = SnapPosition(Distance) - SnapPosition(mMouseToolDistance); lcVector3 ObjectDistance = Distance - mMouseToolDistance; - MoveSelectedObjects(PieceDistance, ObjectDistance, true, AlternateButtonDrag, true, false); + MoveSelectedObjects(PieceDistance, ObjectDistance, AllowRelative, AlternateButtonDrag, true, false); mMouseToolDistance = Distance; gMainWindow->UpdateSelectedObjects(false); diff --git a/common/lc_model.h b/common/lc_model.h index d1f4ef81..fad3fddd 100644 --- a/common/lc_model.h +++ b/common/lc_model.h @@ -304,7 +304,7 @@ public: void UpdateSpotLightTool(const lcVector3& Position); void BeginCameraTool(const lcVector3& Position, const lcVector3& Target); void UpdateCameraTool(const lcVector3& Position); - void UpdateMoveTool(const lcVector3& Distance, bool AlternateButtonDrag); + void UpdateMoveTool(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag); void UpdateRotateTool(const lcVector3& Angles, bool AlternateButtonDrag); void UpdateScaleTool(const float Scale); void EraserToolClicked(lcObject* Object); @@ -320,12 +320,12 @@ public: void ZoomExtents(lcCamera* Camera, float Aspect); void Zoom(lcCamera* Camera, float Amount); - void MoveSelectedObjects(const lcVector3& Distance, bool Relative, bool AlternateButtonDrag, bool Update, bool Checkpoint) + void MoveSelectedObjects(const lcVector3& Distance, bool AllowRelative, bool AlternateButtonDrag, bool Update, bool Checkpoint) { - MoveSelectedObjects(Distance, Distance, Relative, AlternateButtonDrag, Update, Checkpoint); + MoveSelectedObjects(Distance, Distance, AllowRelative, AlternateButtonDrag, Update, Checkpoint); } - void MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool Relative, bool AlternateButtonDrag, bool Update, bool Checkpoint); + void MoveSelectedObjects(const lcVector3& PieceDistance, const lcVector3& ObjectDistance, bool AllowRelative, bool AlternateButtonDrag, bool Update, bool Checkpoint); void RotateSelectedPieces(const lcVector3& Angles, bool Relative, bool RotatePivotPoint, bool Update, bool Checkpoint); void ScaleSelectedPieces(const float Scale, bool Update, bool Checkpoint); void TransformSelectedObjects(lcTransformType TransformType, const lcVector3& Transform); diff --git a/common/lc_view.cpp b/common/lc_view.cpp index a1dba97b..92a9d408 100644 --- a/common/lc_view.cpp +++ b/common/lc_view.cpp @@ -3585,7 +3585,7 @@ void lcView::OnMouseMove() lcVector3 Distance = Intersection - MoveStart; Distance = lcMul(Distance, lcMatrix33AffineInverse(RelativeRotation)); - ActiveModel->UpdateMoveTool(Distance, mTrackButton != lcTrackButton::Left); + ActiveModel->UpdateMoveTool(Distance, true, mTrackButton != lcTrackButton::Left); } else if (mTrackTool == lcTrackTool::MoveXY || mTrackTool == lcTrackTool::MoveXZ || mTrackTool == lcTrackTool::MoveYZ) { @@ -3610,7 +3610,7 @@ void lcView::OnMouseMove() { lcVector3 Distance = Intersection - MoveStart; Distance = lcMul(Distance, lcMatrix33AffineInverse(RelativeRotation)); - ActiveModel->UpdateMoveTool(Distance, mTrackButton != lcTrackButton::Left); + ActiveModel->UpdateMoveTool(Distance, true, mTrackButton != lcTrackButton::Left); } } } @@ -3618,7 +3618,7 @@ void lcView::OnMouseMove() { lcMatrix44 NewPosition = GetPieceInsertPosition(true, mMouseDownPiece); lcVector3 Distance = NewPosition.GetTranslation() - mMouseDownPosition; - ActiveModel->UpdateMoveTool(Distance, mTrackButton != lcTrackButton::Left); + ActiveModel->UpdateMoveTool(Distance, false, mTrackButton != lcTrackButton::Left); } else if (mTrackTool == lcTrackTool::ScalePlus || mTrackTool == lcTrackTool::ScaleMinus) { @@ -3671,7 +3671,7 @@ void lcView::OnMouseMove() if (lcLineSegmentPlaneIntersection(&MoveStart, MouseDownStart, MouseDownEnd, Plane)) { lcVector3 Distance = Intersection - MoveStart; - ActiveModel->UpdateMoveTool(Distance, mTrackButton != lcTrackButton::Left); + ActiveModel->UpdateMoveTool(Distance, true, mTrackButton != lcTrackButton::Left); } } } -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor