浏览代码

Add accelerator keys for reset pos/rot/scale also in editor standard mode. Add reset transform function (Alt-Q).

Lasse Öörni 10 年之前
父节点
当前提交
4bdd80775b
共有 2 个文件被更改,包括 33 次插入7 次删除
  1. 24 0
      bin/Data/Scripts/Editor/EditorScene.as
  2. 9 7
      bin/Data/Scripts/Editor/EditorUI.as

+ 24 - 0
bin/Data/Scripts/Editor/EditorScene.as

@@ -1119,6 +1119,30 @@ bool SceneResetScale()
         return false;
 }
 
+bool SceneResetTransform()
+{
+    if (editNode !is null)
+    {
+        Transform oldTransform;
+        oldTransform.Define(editNode);
+
+        editNode.position = Vector3(0.0, 0.0, 0.0);
+        editNode.rotation = Quaternion();
+        editNode.scale = Vector3(1.0, 1.0, 1.0);
+
+        // Create undo action
+        EditNodeTransformAction action;
+        action.Define(editNode, oldTransform);
+        SaveEditAction(action);
+        SetSceneModified();
+
+        UpdateNodeAttributes();
+        return true;
+    }
+    else
+        return false;
+}
+
 bool SceneSelectAll()
 {
     BeginSelectionModify();

+ 9 - 7
bin/Data/Scripts/Editor/EditorUI.as

@@ -358,18 +358,20 @@ void CreateMenuBar()
         
         if (hotKeyMode == HOTKEYS_MODE_STANDARD)    
         {
-            popup.AddChild(CreateMenuItem("Reset position", @SceneResetPosition));
-            popup.AddChild(CreateMenuItem("Reset rotation", @SceneResetRotation));
-            popup.AddChild(CreateMenuItem("Reset scale", @SceneResetScale));
+            popup.AddChild(CreateMenuItem("Reset position", @SceneResetPosition, '1' , QUAL_ALT));
+            popup.AddChild(CreateMenuItem("Reset rotation", @SceneResetRotation, '2' , QUAL_ALT));
+            popup.AddChild(CreateMenuItem("Reset scale", @SceneResetScale, '3' , QUAL_ALT));
+            popup.AddChild(CreateMenuItem("Reset transform", @SceneResetTransform, 'Q' , QUAL_ALT));
         }
         else if (hotKeyMode == HOTKEYS_MODE_BLENDER)
-        { 
+        {
             popup.AddChild(CreateMenuItem("Reset position", @SceneResetPosition, 'G' , QUAL_ALT));
             popup.AddChild(CreateMenuItem("Reset rotation", @SceneResetRotation, 'R', QUAL_ALT));
             popup.AddChild(CreateMenuItem("Reset scale", @SceneResetScale, 'S', QUAL_ALT));
+            popup.AddChild(CreateMenuItem("Reset transform", @SceneResetTransform, 'Q' , QUAL_ALT));            
         }
-        
-        if (hotKeyMode == HOTKEYS_MODE_STANDARD) 
+
+        if (hotKeyMode == HOTKEYS_MODE_STANDARD)
         {
             popup.AddChild(CreateMenuItem("Enable/disable", @SceneToggleEnable, 'E', QUAL_CTRL));
             popup.AddChild(CreateMenuItem("Enable all", @SceneEnableAllNodes, 'E', QUAL_ALT));
@@ -379,7 +381,7 @@ void CreateMenuBar()
             popup.AddChild(CreateMenuItem("Enable/disable", @SceneToggleEnable, 'H'));
             popup.AddChild(CreateMenuItem("Enable all", @SceneEnableAllNodes, 'H', QUAL_ALT));
         }
-        
+
         if (hotKeyMode == HOTKEYS_MODE_STANDARD)
             popup.AddChild(CreateMenuItem("Unparent", @SceneUnparent, 'U', QUAL_CTRL));
         else if (hotKeyMode == HOTKEYS_MODE_BLENDER)