godot/editor/plugins
Ryan Roden-Corrent 58e8e5f219
Implement blender-style 3D transform tools.
See godotengine/godot-proposals#1215.

This adds shortcuts for blender-inspired transforms, where you can press
the key and immediately be transforming an object without holding the
mouse. Clicking commits the transformation, ESC aborts it.

This is inspired by Blender's G(rab)/R(otate)/S(cale) shortcuts, but I
decided not to add default bindings as `S` is already bound to the
regular scale tool, and it might be confusing to only bind some of them.

While actively using a transform tool, you can press X/Y/Z to lock the
transform to an axis or (shift)+X/Y/Z to constrain the transform to a
plane. These keys are only processed if you have a transform tool
(translate/rotate/scale) active _and_ the mouse button is held.

Pressing XX/YY/ZZ will lock the transform to a local (rather than
global) axis.

This is achieved by temporarily toggling the local transform button. I
did this (vs handling it in the transform functions) for 3 reasons:

- Transform logic for translate/rotate (but not scale) appears to be
  tightly coupled to the gizmo
- This ensures the gizmo changes to indicate we're transforming
  locally/globally
- Toggling the button state in the UI also gives the user feedback about
  the nature of the transform.

The original state of the button is reset when the transform completes.

Pressing the `spatial_editor/cancel_transform` shortcut key during a
transform operation will cancel the transform and reset the objects back
to their original transforms.

This functionality was already accessible by pressing RMB during a
transform, however:

- ESC is more familiar to blender users, and a more common "cancel" key
  in general.
- Given you must hold LMB during a transform, pressing RMB as well is
  clumsy if not impossible (on a laptop trackpad).
2022-01-22 20:55:39 -05:00
..
tiles Merge pull request #56249 from PucklaMotzer09/physics_layer_tooltip 2022-01-14 21:04:28 +01:00
abstract_polygon_2d_editor.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
abstract_polygon_2d_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_blend_space_1d_editor.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_blend_space_1d_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_blend_space_2d_editor.cpp Use List Initializations for Vectors. 2022-01-12 10:15:12 +05:45
animation_blend_space_2d_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_blend_tree_editor_plugin.cpp Fix crash when undoing node creation of BlendTree editor 2022-01-17 14:35:09 +08:00
animation_blend_tree_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_player_editor_plugin.cpp Add option to paste animation as duplicate 2022-01-04 13:39:32 +01:00
animation_player_editor_plugin.h Add option to paste animation as duplicate 2022-01-04 13:39:32 +01:00
animation_state_machine_editor.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_state_machine_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_tree_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
animation_tree_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
asset_library_editor_plugin.cpp Fix assetlib crash 2022-01-16 21:18:20 +03:00
asset_library_editor_plugin.h Fix assetlib crash 2022-01-16 21:18:20 +03:00
audio_stream_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
audio_stream_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
camera_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
camera_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
canvas_item_editor_plugin.cpp Use List Initializations for Vectors. 2022-01-12 10:15:12 +05:45
canvas_item_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
collision_polygon_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
collision_polygon_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
collision_polygon_3d_editor_plugin.cpp Fix secondary handles in editor gizmos 2022-01-12 14:21:20 +01:00
collision_polygon_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
collision_shape_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
collision_shape_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
cpu_particles_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
cpu_particles_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
cpu_particles_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
cpu_particles_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
curve_editor_plugin.cpp Use fill() to fill an entire image instead of setting pixels individually. 2022-01-08 17:43:15 +05:45
curve_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
debugger_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
debugger_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
editor_debugger_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
editor_debugger_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
editor_preview_plugins.cpp Use fill() to fill an entire image instead of setting pixels individually. 2022-01-08 17:43:15 +05:45
editor_preview_plugins.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
font_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
font_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_collision_sdf_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gpu_particles_collision_sdf_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gradient_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
gradient_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
input_event_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
input_event_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
light_occluder_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
light_occluder_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
lightmap_gi_editor_plugin.cpp Merge pull request #56367 from Calinou/bakedlightmap-print-time-request-attention 2022-01-07 00:58:36 +01:00
lightmap_gi_editor_plugin.h Merge pull request #56367 from Calinou/bakedlightmap-print-time-request-attention 2022-01-07 00:58:36 +01:00
line_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
line_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
material_editor_plugin.cpp Fix typos with codespell 2022-01-07 00:12:09 +01:00
material_editor_plugin.h Move metallic and roughness automated assignment to an inspector UndoRedo 2022-01-06 16:07:26 +00:00
mesh_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_instance_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_instance_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_library_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
mesh_library_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
multimesh_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
multimesh_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
navigation_polygon_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
navigation_polygon_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
node_3d_editor_gizmos.cpp Merge pull request #56692 from JFonS/fix_gizmo_secondary_handles 2022-01-12 15:53:06 +01:00
node_3d_editor_gizmos.h Fix secondary handles in editor gizmos 2022-01-12 14:21:20 +01:00
node_3d_editor_plugin.cpp Implement blender-style 3D transform tools. 2022-01-22 20:55:39 -05:00
node_3d_editor_plugin.h Implement blender-style 3D transform tools. 2022-01-22 20:55:39 -05:00
occluder_instance_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
occluder_instance_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
ot_features_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
ot_features_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
packed_scene_translation_parser_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
packed_scene_translation_parser_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
path_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
path_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
path_3d_editor_plugin.cpp Fix secondary handles in editor gizmos 2022-01-12 14:21:20 +01:00
path_3d_editor_plugin.h Fix secondary handles in editor gizmos 2022-01-12 14:21:20 +01:00
physical_bone_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
physical_bone_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
polygon_2d_editor_plugin.cpp Add ViewPanner to more editors 2022-01-14 13:09:39 +01:00
polygon_2d_editor_plugin.h Add ViewPanner to more editors 2022-01-14 13:09:39 +01:00
resource_preloader_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
resource_preloader_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
root_motion_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
root_motion_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
script_editor_plugin.cpp Merge pull request #55541 from KoBeWi/outcognito_scripts 2022-01-14 21:04:13 +01:00
script_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
script_text_editor.cpp Merge pull request #55541 from KoBeWi/outcognito_scripts 2022-01-14 21:04:13 +01:00
script_text_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
SCsub Rework the TileSet resource and TileMap nodes: 2021-05-07 18:06:17 +02:00
shader_editor_plugin.cpp Optimize include files to improve shader_language.h compilation speed 2022-01-12 14:19:12 +03:00
shader_editor_plugin.h Optimize include files to improve shader_language.h compilation speed 2022-01-12 14:19:12 +03:00
shader_file_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
shader_file_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_ik_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
skeleton_ik_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sprite_2d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sprite_2d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sprite_frames_editor_plugin.cpp Fix AtlasTexture nesting 2022-01-15 00:14:56 +01:00
sprite_frames_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
style_box_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
style_box_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sub_viewport_preview_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sub_viewport_preview_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
text_control_editor_plugin.cpp Merge pull request #55352 from YeldhamDev/text_widget_undo 2022-01-07 15:38:22 +01:00
text_control_editor_plugin.h Merge pull request #55352 from YeldhamDev/text_widget_undo 2022-01-07 15:38:22 +01:00
text_editor.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
text_editor.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_3d_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_3d_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_editor_plugin.cpp Rename TextureRect.expand to ignore_texture_size 2022-01-07 20:21:17 +01:00
texture_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_layered_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_layered_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
texture_region_editor_plugin.cpp Style: Remove inconsistently used @author docstrings 2022-01-04 20:42:50 +01:00
texture_region_editor_plugin.h Style: Remove inconsistently used @author docstrings 2022-01-04 20:42:50 +01:00
theme_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
theme_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
theme_editor_preview.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
theme_editor_preview.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
version_control_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
version_control_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
visual_shader_editor_plugin.cpp Merge pull request #56713 from Chaosus/vs_sampler_connection 2022-01-12 16:07:09 +03:00
visual_shader_editor_plugin.h A small visual shader editor refactoring 2022-01-07 11:27:06 +03:00
voxel_gi_editor_plugin.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
voxel_gi_editor_plugin.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00