Commit Graph

380 Commits

Author SHA1 Message Date
Hugo Locurcio
336bc03d66
Add an editor setting to invert 3D pan/orbit on the X axis
This also makes the invert Y axis option apply to 3D panning.

This closes #28082.

(cherry picked from commit 2c9d4ef961)
2020-08-21 02:28:17 +02:00
Andy Maloney
cc8c6180c3 [macOS] Fix Maya navigation with ALT + mouse scroll
Methods were being called with InputEventMouseMotion instead of InputEventPanGesture, and they were null.

Fixes godotengine/godot#16181 on the master branch

(cherry picked from commit 394a7826be)
2020-07-24 10:31:57 +02:00
Michael Alexsander
e7e022b3ee Prefer the highlight version of the "GuiTabIcon" icon for buttons, and make their width/height equal
(cherry picked from commit 26381265b8)
2020-07-15 12:11:31 +02:00
Aaron Franke
44c3908c7b Avoid errors when the editor camera is inside the focused object
Prevent the gizmo distance from being zero by MAX-ing it with CMP_EPSILON

(cherry picked from commit ed2bbdbbef)
2020-06-22 12:04:52 +02:00
Vorblen
4c638f98ab Fix "Fully Axis-Locked" Freelook Navigation Scheme
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
(cherry picked from commit 29e901c342)
2020-06-21 21:48:12 +02:00
Hugo Locurcio
d4dd80afe7 Restore previous mouse position when leaving the editor freelook mode
- Remove the crosshair as it no longer serves a purpose (the cursor will
  now appear where the user "expects" it to).

This closes https://github.com/godotengine/godot-proposals/issues/1076.

(cherry picked from commit 4a542e0007)
2020-06-18 11:29:28 +02:00
Hugo Locurcio
5200ff03d2 Display freelook speed and zoom in units in the 3D editor viewport
Now that the 3D editor grid is infinite and adjusts its step automatically,
this helps people get a better sense of scale when moving around in the
3D viewport.

This also fixes the indicator bar drawing on hiDPI displays.

(cherry picked from commit eaae50fe4a)
2020-06-18 11:29:28 +02:00
Aaron Franke
0b6a410890 Change the default editor camera rotation to position it in +X +Y +Z
(cherry picked from commit 6c2df6792b)
2020-06-10 15:30:52 +02:00
Hugo Locurcio
eb6c7ec09c Add an editor tooltip to document gizmo visibility options
See discussion in
https://github.com/godotengine/godot-proposals/issues/716.

(cherry picked from commit 138a4eecb3)
2020-06-10 15:30:52 +02:00
Marcus Brummer
f8463df11a Re-apply basis of newly added node (via drag-n-drop) in editor viewport 2020-06-07 19:34:17 +02:00
JFonS
9828c6bc86 Keep mouse inside 3D viewport rotation widget
Hide and keep the mouse in place when the user oribts the scene via the 3D
rotation widget.

(cherry picked from commit 051f02a3a0)
2020-05-11 11:01:13 +02:00
Thakee Nathees
7d931bad58 rotation gizmo visible = false; when camera preview
(cherry picked from commit 60d67f13da)
2020-05-11 11:01:13 +02:00
Hugo Locurcio
cfd6bc7267 Don't focus the selection after using Align Transform With View
It made minor adjustments difficult as the camera moved every time
Align Transform With View was used.

This closes #36738.

(cherry picked from commit a636631e33)
2020-05-01 10:56:58 +02:00
Rémi Verschelde
8d93303483
Merge pull request #37863 from ExpiredPopsicle/culling5
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
Kiri Jolly
bac44ee19f Fixed false positives in the culling system.
This fixes numerous false positives coming out of the culling system.

AABB checks are now a full separating-axis check against the frustum, with the points of the frustum being compared to the planes of the box just as the points of the box were being compared to the planes of the frustum. This fixes large objects behind the camera not being culled correctly.

Some systems that used frustums that were (sometimes mistakenly?) unbounded on one or more side have been modified to be fully enclosed.
2020-04-28 17:14:06 -07:00
Hugo Locurcio
93555d9ccc Add editor freelook navigation scheme settings
Depending on what one is trying to achieve, a different freelook mode
may be more desirable.

This closes #34034.

(cherry picked from commit 8a48fb3517)
2020-04-27 10:12:55 +02:00
Kiri Jolly
26912c15e6 Othographic camera in-editor now uses Z near/far settings instead of a hardcoded value
Fixes #18809.

The in-editor ortho camera used a far clipping plane of 8192 units, and was
placed 4096 units away from the camera cursor.

This was far enough to cause culling issues from floating point precision loss
on objects smaller than one unit.

This change modifies the near/far clipping planes of the ortho camera to use
those specified in the editor (and currently used by the perspective camera).
The frustum is still centered around the camera cursor location, as it was
before.
2020-04-04 16:16:11 -07:00
simpuid
a10a21f407 Fixes transform gizmo position when node has default transform
Changes made:
* Added dirty bit for SpatialEditorSelectedItem's last_xform
* SpatialEditorViewport checks that dirt bit too before skipping the selection

(cherry picked from commit 19825436d4)
2020-03-25 11:38:53 +01:00
JFonS
4d85f70015 Update all editor viewports after settings changes
(cherry picked from commit 55b478afd9)
2020-03-25 11:30:49 +01:00
JFonS
784ff23adc Fix rotation gizmo for empty Spatials
The AABB for an empty Spatial has 0 size, since the stored and
compared Transform was scaled by the AABB size, it would completely
destroy the rotation information. If there is no rotation
information, the gizmo doesn't update when the rotation changes.

(cherry picked from commit a0af3094b4)
2020-03-25 11:30:49 +01:00
volzhs
644d49b156 Update snap setting only with OK
restore previous values with cancel

(cherry picked from commit 667a981d4d)
2020-03-25 11:30:48 +01:00
jfons
5b4251695a Add rotation widget to 3D viewport 2020-03-09 09:40:10 +01:00
janglee
56437cddeb Make orthogonal view mode persistent in new scene
Fixes #36339.

(cherry picked from commit d3c580f0bc)
2020-02-20 07:59:45 +01:00
lawnjelly
eaf8e5ce52 Change CameraMatrix::get_viewport_size to get_viewport_half_extents
Fixes #26637.
Fixes #19900.

The viewport_size returned by get_viewport_size was previously incorrect, being half the correct value. The function is renamed to get_viewport_half_extents, and now returns a Vector2.

Code which called this function has also been modified accordingly.

This PR also fixes shadow culling when using ortho cameras, because the correct input for CameraMatrix::set_orthogonal should be the full HEIGHT from get_viewport_half_extents, and not half the width.

It also fixes state.ubo_data.viewport_size in rasterizer_scene_gles3.cpp to be the width and the height of the viewport in pixels as stated in the documentation, rather than the current value which is half the viewport extents in worldspace, presumed to be a bug.
2020-01-22 18:22:00 +00:00
Hugo Locurcio
8bce0b6176
Mark alternate editor display modes as disabled in the GLES2 renderer
This partially addresses #27018.
2020-01-17 16:06:47 +01:00
Hugo Locurcio
2b9f34b867
Add a crosshair to the 3D viewport
The crosshair makes freelook navigation a bit easier, while making it
clearer that it's possible to select nodes by clicking while in
freelook mode.

The crosshair is only displayed while in freelook mode.
It uses an icon designed to be visible on any background.
2020-01-13 22:30:34 +01:00
Rémi Verschelde
c0ece451e3
Merge pull request #34720 from Calinou/light-gizmo-color-by-light
Tint 3D light gizmos using the light's color
2020-01-02 13:59:10 +01:00
Rémi Verschelde
a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Hugo Locurcio
ac18665c88
Tint 3D light gizmos using the light's color
This makes navigation more convenient in the 3D viewport, especially
when using the unshaded display mode.
2020-01-01 00:54:25 +01:00
Haoyu Qiu
078c0d75f2 Cleans up headers included in editor_node.h 2019-12-24 21:46:05 +08:00
JFonS
8da8518ba3 Fix selection on 3D viewport with half resolution 2019-12-19 12:53:20 +01:00
Aaron Franke
4af218f9e3
Don't cast item to Spatial when checking if it's locked
Not a necessary cast, and causes a crash any time it's not a Spatial.
2019-11-28 05:34:54 -05:00
Hugo Locurcio
1e28571d82
Always allow Alt as an orbit modifier in the 3D editor
This makes it easier to navigate in 3D when using a graphics tablet.
This fallback modifier will only be available if no other modifier
is using Alt.

This partially addresses
https://github.com/godotengine/godot-proposals/issues/196.
2019-11-14 17:40:15 +01:00
Michael Alexsander
c77ce40c3b Minor adjustment in the "Game Camera Override" button's tooltip. 2019-11-11 11:46:23 -03:00
PouleyKetchoupp
311ab52b6c Fixed Camera preview when creating new scenes
Fixes #33490
2019-11-09 17:24:40 +01:00
Rémi Verschelde
621dc7022f
Merge pull request #27742 from rxlecky/camera-replication
Game camera override
2019-11-08 10:02:18 +01:00
volzhs
4b53a86ce3 Fix error when opening or closing scene with camera preview on 2019-10-27 21:04:29 +09:00
Erik
8b0546d93b Implement game camera override
Implemented uniform API in Viewport class to override 2D and/or
3D camera.

Added buttons in 2D and 3D editor viewport toolbars that override
the running game camera transform with the editor viewport camera
transform. Implemented via remote debugger protocol and camera
override API.

Removed LiveEditFuncs function pointers from ScriptDebugger class.
Since the debugger got access to the SceneTree instance (if one
exists), there is no need to store the function pointers. The live
edit functions in SceneTree are used directly instead. Also removed
the static version of live edit functions in SceneTree for the same
reason. This reduced the SceneTree -> Debugger coupling too since
the function pointers don't need to be set from SceneTree anymore.

Moved script_debugger_remote.h/cpp from 'core/' to 'scene/debugger/'.
This is because the remote debugger is now using SceneTree directly
and 'core/' classes should not depend on 'scene/' classes.
2019-10-23 02:51:32 +01:00
Hugo Locurcio
af89a87075
Add a "slow" modifier to freelook
This makes precise adjustments easier, without having to
touch the mouse wheel. This modifier is also available in
Blender, so this makes the freelook behavior more consistent
with it :)

In the interest of simplifying the Editor Settings, this also
removes the freelook modifier speed factor setting
(the value is now hardcoded to its default).
2019-10-14 22:50:02 +02:00
jfons
c1de7cb22e Fix calculate_spatial_bounds for selection display
Fixes `SpatialEditorPlugin::_calculate_spatial_bounds` so the displayed
selection doesn't break with transformed scenes.
2019-10-04 15:47:15 +02:00
Emmanuel Barroga
10d0bc920b Fixes scene instances not displaying bounds when selected
When selecting instances of a scene file, it doesn't display the bounding box which makes it difficult to visually see that it is selected.
2019-10-03 22:46:29 -07:00
Rémi Verschelde
ddc42be1db
Merge pull request #32431 from lupoDharkael/checks
Add checks after ResourceLoader::load()
2019-09-30 07:55:47 +02:00
lupoDharkael
0a0f596dfb Add checks after ResourceLoader::load() 2019-09-29 14:17:42 +02:00
Bojidar Marinov
faf0a49cbf
Fix crash in ~EditorSpatialGizmoPlugin when generating documentation data 2019-09-28 12:04:50 +03:00
Michael Alexsander Silva Dias
5ed5465023 Replace "GuiMiniTabMenu" with "GuiTabMenu" and tweak it 2019-09-25 12:53:42 -03:00
Rémi Verschelde
076dc9803a
Merge pull request #32119 from Calinou/unify-axis-colors
Use the same axis colors consistently in the 2D and 3D editors
2019-09-25 13:03:47 +02:00
Rémi Verschelde
2f52d73c21
Merge pull request #31925 from bojidar-bg/31855-overriden-properties-docs
Add overriden properties to the documentation
2019-09-24 11:53:43 +02:00
luz.paz
91ecd7b6a6 Fix misc. source comment typos
Found using `codespell -q 3 -S ./thirdparty,*.po -L ang,ba,cas,dof,doubleclick,fave,hist,leapyear,lod,nd,numer,ois,paket,seeked,sinc,switchs,te,uint -D ~/Projects/codespell/codespell_lib/data/dictionary.txt `
2019-09-19 14:36:52 -04:00
Hugo Locurcio
c2bcc3f700
Use the same axis colors consistently in the 2D and 3D editors 2019-09-13 14:08:41 +02:00
Bojidar Marinov
6c4407bae4
Add overriden properties to the documentation
Fixes #31855
2019-09-04 15:21:40 +03:00
merumelu
e2459479de Editor: remove TOOLS_ENABLED guards
For code  inside editor/ `#ifdef TOOLS_ENABLED`
is always true so those checks are redundant.
2019-08-30 19:02:46 +02:00
Chaosus89
19d449ec4c Fix few icons in SpatialEditor which don't update when theme changed 2019-08-30 11:26:01 +03:00
Rémi Verschelde
2920c8fbaa
Merge pull request #31447 from Calinou/spatial-editor-use-shortcut-tooltips
Use shortcut tooltips in the spatial editor
2019-08-18 16:07:05 +02:00
Hugo Locurcio
78878fbc97
Improve "Snap Object to Floor" functionality
- Display an error message if no selected nodes could be snapped
- Only register an undo/redo action if at least one node
  could be snapped
- Increase the maximum snapping height to 20
- Increase the negative snapping limit to 0.2
2019-08-18 01:50:25 +02:00
Hugo Locurcio
35ad0475c3
Use shortcut tooltips in the spatial editor
This makes the tooltips display the correct shortcuts in case
they are changed, as is done automatically by `set_shortcut()`.

Button shortcuts are now used to apply shortcut actions,
which makes for cleaner code.
2019-08-17 23:39:28 +02:00
Hugo Locurcio
108f9646f5
Add an outline to box selection rectangles for better visibility
This also refactors selection box color definitions
to avoid repetition.
2019-08-15 22:27:32 +02:00
Hugo Locurcio
9e1c23a353
Reorganize various menus for consistency and conciseness
- Clean up the recent scripts dialog to match the recent scenes dialog
- Add "..." at the end of shortcuts that cause a modal dialog to appear

This closes #31148.
2019-08-13 11:52:10 +02:00
Cameron Reikes
345fcb96a2 Add particles icon to CPUParticles 2019-08-08 16:28:01 -07:00
Hugo Locurcio
20154d3b2a
Fix 3D manipulator the gizmo growing too large on small viewports
This closes #27112. This closes #19116.
2019-08-03 03:01:32 +02:00
Hugo Locurcio
d57680cf34
Improve the gizmo axis colors and increase the manipulator opacity
The new colors should make it easier to see the manipulator gizmo.
Highlighted gizmos are now fully opaque (instead of being white),
keeping the color information while a gizmo is highlighted.

This also adds a setting hint for the manipulator gizmo opacity
editor setting.

Axis colors were taken from Blender 2.80.

This partially addresses #16154.
2019-08-01 14:30:35 +02:00
Aaron Franke
53d2a4e905 Snap transform gizmo values in the 3D editor
Snap to step size, and then also be careful to only display that many digits (to avoid numbers like 1.234001)
2019-07-25 19:40:35 -04:00
Rémi Verschelde
c608b6f648
Merge pull request #23334 from malbach/align_sel_view
Add 'Move to view' and make 'Align to view' only align
2019-07-24 08:33:23 +02:00
malbach
4a218b9862 Add 'Align Rotation with View' to spatial editor 2019-07-23 15:14:03 +02:00
Marcus Brummer
4c8fa414bb Increased max view distance in spatial editor plugin
Increased from 10000 to 1000000. I also removed two related magic numbers.
Closes #30766.
2019-07-23 11:42:41 +02:00
qarmin
ed84c9e506 Don't allow to pass to _is_node_locked function NULL pointer 2019-07-19 17:56:35 +02:00
Nikhil Kumar
600c153076 Fixed Make 3D viewport locked nodes unselectable as in 2D viewport #29903 2019-07-16 14:19:20 +05:30
Rémi Verschelde
34d7484039
Merge pull request #30455 from qarmin/const_reference
Pass by reference to const
2019-07-10 15:43:15 +02:00
qarmin
01cc7a996b Use reference to constant in functions 2019-07-10 11:54:12 +02:00
Hugo Locurcio
2491c87f86
Add width and antialiased parameters to CanvasItem draw_rect()
This also removes some duplicated editor code which is now obsoleted
by the new parameters in `draw_rect()`.
2019-07-09 20:30:18 +02:00
qarmin
9a77d748c0 Fixes minor issues found by static analyzer 2019-07-07 23:08:51 +02:00
Rémi Verschelde
5c66771e3e
Merge pull request #29283 from qarmin/fix_some_always_same_values
Remove always true/false values
2019-06-20 21:10:10 +02:00
qarmin
072e40368e Fix always true/false values 2019-06-20 16:59:48 +02:00
Rémi Verschelde
6d16f2f053 Fix error macro calls not ending with semicolon
It's not necessary, but the vast majority of calls of error macros
do have an ending semicolon, so it's best to be consistent.
Most WARN_DEPRECATED calls did *not* have a semicolon, but there's
no reason for them to be treated differently.
2019-06-11 14:49:34 +02:00
Michael Alexsander Silva Dias
d29d856933 Place the spatial editor's top left buttons in a container 2019-05-24 16:21:07 -03:00
Dalai Felinto
5b6e7935d1 Fix upper/lowercase in some UI strings
Note: I was tempted to also change "Align with View" since we use the word
"With" with uppercase in "Align Selection With View".

However I believe "With" should be lower case and the old stripg
(Align Selection ...) is the one to be fixed.
2019-05-19 18:08:11 -03:00
Rémi Verschelde
85c27f9c90
Merge pull request #28452 from Sintinium/undoredo-lock
Undo support for locking and grouping for both 2D and 3D
2019-04-29 16:23:28 +02:00
Sintinium
d1fa546dc9 Undo support for locking and grouping for both 2D and 3D 2019-04-26 18:16:59 -05:00
Aaron Franke
b659e1eb2b
Use approximate equallity methods in many places 2019-04-25 13:20:29 -04:00
Rémi Verschelde
78eb25a4a8
Merge pull request #27860 from Calinou/improve-3d-snapping
Make 3D snapping finer when holding Shift
2019-04-21 13:12:10 +02:00
Rémi Verschelde
7879968136
Merge pull request #28026 from Dentoid/insert_keyframe_fix
Fix for "Insert Keyframe" shortcut doing nothing
2019-04-21 12:58:24 +02:00
JFonS
42043a22e8 Add grouping to 3D editor 2019-04-17 18:24:28 +02:00
Anders Stenberg
645c656571 Proper passing of the "transform_key_request"
signal from SpatialEditorViewport to InspectorDock
2019-04-14 22:27:59 +02:00
Hugo Locurcio
156faf535c
Make 3D snapping finer when holding Shift
This also changes the default rotation and scale snapping increments
to better make use of fine snapping possibilities.
2019-04-09 17:57:19 +02:00
Rémi Verschelde
c8994b56f9 Style: Apply new changes from clang-format 8.0
It seems to stay compatible with formatting done by clang-format 6.0 and 7.0,
so contributors can keep using those versions for now (they will not undo those
changes).
2019-04-09 17:09:48 +02:00
Rémi Verschelde
a71d8b561d
Merge pull request #26927 from qarmin/fix_perspective_button_hide
Fix perspective button hide when it actually should be disabled
2019-04-05 16:45:29 +02:00
Hugo Locurcio
d59b210aec
Use the editor theme's accent color for 2D/3D selections and rotations 2019-03-31 23:54:46 +02:00
Rémi Verschelde
18fa1846ea
Merge pull request #27115 from Janglee123/master
Fix toggling snap mode while transforming the Spatial object
2019-03-16 10:54:44 -07:00
janglee123
05446e8b53 fixed toggelling snap mode while transforming 2019-03-16 13:45:39 +05:30
Sebastian Hartte
7bab7fd777 Don't crash when the saved editor state contains fewer viewports than currently supported. 2019-03-12 12:17:17 +01:00
JFonS
2658e5d03d Add priority to gizmos and fix small issues
User defined gizmos will haave higher preference than editor gizmos by
default. Also fixed some inconsistencies in the gizmos menu when using
custom gizmos.
2019-03-12 00:30:50 +01:00
qarmin
2e5b6b5bde Fix perspective button hide when it should be actually disabled 2019-03-11 18:10:00 +01:00
Andrii Doroshenko (Xrayez)
a4e6e2f342 Ensure to disable freelook when leaving spatial editor
Fixes and prevents the problem with mouse getting stuck in MOUSE_MODE_CAPTURED when switching to canvas item editor plugin by any means other than manually (with mouse).
2019-03-05 12:42:25 +02:00
Michael Alexsander Silva Dias
3ef8238c1c Make translatable some undo/redo operations in the editor 2019-02-21 16:41:01 -03:00
marxin
8d51618949 Add -Wshadow=local to warnings and fix reported issues.
Fixes #25316.
2019-02-20 19:44:12 +01:00
Rémi Verschelde
d1f68e2eaf Add tooltip for in-editor FPS display in 3D viewport
Also enhance Control/Label documentation about tooltips and mouse filter,
as it took me a while to understand why Labels didn't show tooltips.

Closes #26082.
2019-02-20 12:16:22 +01:00
Chaosus
a51088a7f9 Fix icon color for gizmos menu when theme changed 2019-02-15 20:32:38 +03:00
Rémi Verschelde
b7cc2bb1e2 Core: Ensure classes match their header filename
Also drop some unused files.

Renamed:
- `core/dvector.h` -> `pool_vector.h`
- `core/io/resource_import.h` -> `resource_importer.h`
- `core/sort.h` -> `sort_array.h`
- `core/string_db.h` -> `string_name.h`

Dropped:
- `core/allocators.h`
- `core/os/shell.h`
- `core/variant_construct_string.cpp`
2019-02-12 13:34:25 +01:00
Rémi Verschelde
58de384978
Merge pull request #25540 from JFonS/remove_gizmo_errors
Fix gizmo errors on "Align with view"
2019-02-01 14:12:37 +01:00
JFonS
2232d3336e Fix gizmo errors on "Align with view" 2019-02-01 12:16:05 +01:00
JFonS
e90fb5b0ab Minor fixes and documentation for Spatial Gizmos 2019-01-27 18:40:01 +01:00