Commit Graph

141 Commits

Author SHA1 Message Date
686780e289 Clears RIDs wherever they are freed by VisualServer or PhysicsServer and possibly reused. Fixes #53374
(cherry picked from commit 3d20218dae)
2021-12-09 22:02:00 +01:00
ca3ab75697 Allow any kind of Mesh to be added to an EditorSpatialGizmo
(cherry picked from commit e0729b9c79)
2021-12-07 09:14:31 +01:00
7922c262f6 Display a editor gizmo icon for Listener
The icon was present in `editor/icons/`, but it was never implemented
in the editor gizmos code.

This also removes some unused gizmo drawing code (overridden methods
that are no longer called anywhere).
2021-09-16 23:37:12 +02:00
115f4dce55 Sphere occluders (portals and general use)
Add framework for supporting geometrical occluders within rooms, and add support for sphere occluders.
Includes gizmos for editing.

They also work outside the portal system.
2021-08-17 09:02:06 +01:00
770d9f8220 Portals - add gizmo handles for editing portals and rooms
Gizmo handles are added for much more user friendly editing of portals and room bounds.
2021-08-06 07:53:22 +01:00
cb39b3d77c Portals - Gizmo colors added to editor settings
Make the portal and room gizmo colors user definable.
2021-07-26 20:09:22 +01:00
44f9a0f961 Portals - fix autolink sprawling, refine logs
It turned out the new autolinking feature was linking portals AFTER the static meshes had been added to rooms in the PortalRenderer. This meant that large meshes weren't being sprawled across these portals. The fix involves doing the autolinking BEFORE adding the static meshes.

Fixes a bug in the warning for portals being in the wrong direction, they should have only been checkout for outgoing portals. This was resulting in erroneous warnings.

Also the room conversion logs are refined to be more compact and informative.

A warning icon is also added in the gizmo for portals where autolink fails.
2021-07-15 13:04:05 +01:00
eb6f98ec55 Portal occlusion culling
Adds support for occlusion culling via rooms and portals.
2021-07-14 11:43:23 +01:00
eb3ddbc050 Remove early return from gizmo intersect_ray
Remove early returns from `EditorNode3DGizmo::intersect_ray` that is preventing to have gizmos that use Mesh collision + Segment collision + Icon.

(cherry picked from commit 2c12297ee1)
2021-06-29 14:02:22 +02:00
a6a6ad5c08 Add custom debug shape thickness and color options to RayCast
This backports the improved RayCast debug drawing functionality
from the `master` branch.

`ArrayMesh.clear_surfaces()` was also backported from the `master`
branch and exposed because the new debug drawing code requires it.
2021-06-19 06:01:25 +02:00
7c8a8d9bf5 Remove the 3D camera gizmo icon
The gizmo icon obstructed the line-based camera gizmo, which made it
difficult to see the actual camera orientation.

This also removes the unused SpatialStreamPlayer gizmo icon.
2021-06-16 07:03:11 +02:00
80e1585a6e Style: Cleanup uses of double spaces between words
Or after punctuation. Tried to leave third-party stuff alone, unless it has
been heavily modified for Godot.

(cherry picked from commit c1c76850cb)
2021-06-07 12:06:59 +02:00
ba396caefc Replace QuickHull with Bullet's convex hull computer.
The code is based on the current version of thirdparty/vhacd and modified to use Godot's types and code style.

Additional changes:
- backported and extended PagedAllocator to allow leaked objects
- applied patch from https://github.com/bulletphysics/bullet3/pull/3037
2021-05-22 08:16:43 +02:00
140350d767 Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
a828398655 Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
b5e1e05ef2 Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
64a63e0861 Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine 2021-05-04 14:45:15 +02:00
3d15f04668 Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
13258baf4c Fix PhysicalBone gizmo not showing
The new CollisionObject gizmo used for custom shapes was used with
higher priority due to alphabetical order and was preventing physical
bones from being displayed in the editor.
2021-03-22 10:35:11 -07:00
987c3462fe Fix pinned vertices in SoftBody editor gizmo
The wrong vertices could be highlighted/selected due to generating a
debug triangle mesh to gather points, which can modify the order of
vertices.
2021-03-11 18:27:48 -07:00
2da6d82f3b Allow CollisionObject to show collision shape meshes
Add an editor gizmo to CollisionObject.
CollisionShape no longer shows collision shapes directly.
2021-02-24 21:33:40 +01:00
49646383f1 Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
8d93303483 Merge pull request #37863 from ExpiredPopsicle/culling5
Fixed false positives in the culling system.
2020-04-30 08:05:11 +02:00
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
add8d1b9df Update Joint gizmos automatically
(cherry picked from commit 3e77b6d49d)
2020-04-23 11:07:32 +02:00
4faaf6089a Remove unused #if 0'ed code 2020-01-21 21:41:54 +01:00
ce9453ecf4 Prevent negative zero shown in SpotLight gizmo 2020-01-20 09:08:18 +08:00
a18909f945 doc: Sync classref with current source 2020-01-03 15:09:09 +01:00
bca64e3b6f Fix missing DEFVAL in some EditorSpatialGizmo methods
This was a regression from ac18665c88,
which changed the C++ method signature but forgot to update the method bind.
2020-01-02 18:07:23 +01:00
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
3e649f8cba Merge pull request #34665 from timothyqiu/camera-fov
Clamps fov/size for Camera gizmo
2020-01-01 11:37:28 +01:00
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
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
cbb8930813 Clamps fov/size for Camera gizmo 2019-12-29 11:39:04 +08:00
06e4a3aa75 Fixed errors in JointSpatialGizmoPlugin when selecting a joint with unset nodes
Fixes #34122
2019-12-05 19:27:57 +01:00
1f623c5a2b Fix broken gizmo interaction when Node is scaled 2019-11-13 12:22:08 +01:00
29690f6aec Fixes concaveshape not selecting in viewport
This PR resolves the issue of ConcaveShapes not being selectable in the Viewport.
2019-10-11 03:42:36 -07:00
edf9055b7f Merge pull request #32325 from SaracenOne/add_mesh_bindings_fix
SpatialEditorGizmo add_mesh bindings fix
2019-09-25 20:46:58 +02:00
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
fcef45006e SpatialEditorGizmo add_mesh bindings fix 2019-09-25 09:30:25 +01:00
0feff49375 Improve the AudioStreamPlayer3D gizmo
This adds more lines to the emission angle cone to give a better
feel of depth in the 3D world.
2019-09-24 22:41:02 +02:00
97143e60c1 Fix wrong defval in EditorSpatialGizmo.add_mesh method bind
The type of the parameter 'skeleton' was changed from 'RID' to 'SkinReference', yet the default value remained 'RID()'.
2019-09-24 15:12:27 +02:00
159470df08 Merge pull request #32275 from godotengine/skin_support
Added skin support and simplified APIs to override bone position + glTF 2.0 import fixes
2019-09-23 15:02:15 +02:00
d81ddaf33e Added skin support and simplified APIs to override bone position. 2019-09-18 19:46:32 -03:00
bfa246cda8 Improve the 3D light gizmos
OmniLight and SpotLight gizmos were tweaked to better represent
their depth in the 3D world.

The default light gizmo color was changed to match the gizmo
icon color closely.
2019-09-17 06:01:21 +02:00
c2bcc3f700 Use the same axis colors consistently in the 2D and 3D editors 2019-09-13 14:08:41 +02:00
a350fd4a57 Draw 3D collision shape/raycast gizmos in grayscale when disabled
This makes them easier to distinguish from their enabled counterparts,
as is already done in the 2D editor.
2019-08-21 15:32:51 +02:00
345fcb96a2 Add particles icon to CPUParticles 2019-08-08 16:28:01 -07:00
0ce59bf6dd Implement snapping for most 3D gizmos 2019-07-03 12:26:01 +02:00
3c154eb93b Remove unnecessary code and add some error explanations 2019-07-01 12:59:42 +02:00