Add undo/redo and navmesh dirtying when using selection rotate shortcut (R key)

#765
This commit is contained in:
Wojtek Figat
2022-10-29 11:50:16 +02:00
parent c41248f402
commit f67d1412de
2 changed files with 8 additions and 7 deletions

View File

@@ -86,7 +86,7 @@ namespace FlaxEditor.Gizmo
/// <summary>
/// Starts the objects transforming (optionally with duplicate).
/// </summary>
protected void StartTransforming()
public void StartTransforming()
{
// Check if can start new action
var count = SelectionCount;
@@ -119,7 +119,7 @@ namespace FlaxEditor.Gizmo
/// <summary>
/// Ends the objects transforming.
/// </summary>
protected void EndTransforming()
public void EndTransforming()
{
// Check if wasn't working at all
if (!_isTransforming)

View File

@@ -329,7 +329,6 @@ namespace FlaxEditor.Viewport
var buttonBB = translateSnappingCM.AddButton("Bounding Box");
buttonBB.Tag = -1.0f;
translateSnappingCM.ButtonClicked += OnWidgetTranslateSnapClick;
translateSnappingCM.VisibleChanged += OnWidgetTranslateSnapShowHide;
_translateSnapping.Parent = translateSnappingWidget;
@@ -711,10 +710,10 @@ namespace FlaxEditor.Viewport
{
var win = (WindowRootControl)Root;
var selection = _editor.SceneEditing.Selection;
var IsShiftDown = win.GetKey(KeyboardKeys.Shift);
var isShiftDown = win.GetKey(KeyboardKeys.Shift);
Quaternion rotationDelta;
if(IsShiftDown)
if (isShiftDown)
rotationDelta = Quaternion.Euler(0.0f, -45.0f, 0.0f);
else
rotationDelta = Quaternion.Euler(0.0f, 45.0f, 0.0f);
@@ -722,15 +721,16 @@ namespace FlaxEditor.Viewport
bool useObjCenter = TransformGizmo.ActivePivot == TransformGizmoBase.PivotType.ObjectCenter;
Vector3 gizmoPosition = TransformGizmo.Position;
//PE: Rotate selected objects.
// Rotate selected objects
bool isPlayMode = Editor.Instance.StateMachine.IsPlayMode;
TransformGizmo.StartTransforming();
for (int i = 0; i < selection.Count; i++)
{
var obj = selection[i];
if (isPlayMode && obj.CanTransform == false)
continue;
var trans = obj.Transform;
Vector3 pivotOffset = trans.Translation - gizmoPosition;
var pivotOffset = trans.Translation - gizmoPosition;
if (useObjCenter || pivotOffset.IsZero)
{
trans.Orientation *= Quaternion.Invert(trans.Orientation) * rotationDelta * trans.Orientation;
@@ -745,6 +745,7 @@ namespace FlaxEditor.Viewport
}
obj.Transform = trans;
}
TransformGizmo.EndTransforming();
}
/// <summary>