Changed EditorNode3DGizmoPlugin::current_gizmos from List to HashSet, to avoid having to iterate through all gizmos when ~EditorNode3DGizmo unregisters itself.
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)
* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
- Remove handles as users should use the Generate Visibility AABB
option whenever possible, so manual resizing isn't needed often.
(For particles that move quickly and have Local Coords disabled,
Extra Cull Margin can be increased in the GeometryInstance3D
properties in the inspector.)
- Remove translucent filled part of the gizmo to be more consistent
with GeometryInstance3D's recently introduced Custom AABB gizmo.
- Remove center marker as it can visually obstruct particles.
This paves the way for future emission shape gizmos which will
feature handles.
This harmonizes the appearance of collision shapes and paths between
the editor and running project, in both 2D and 3D.
This means that in 3D, paths are now green and shapes are now cyan
instead of light blue.
- Tweak CPUParticles3D editor gizmo icon to use the same outline
color as other gizmo icons. Make the internal icon easier to see
by using an orange color instead of gray.
Co-authored-by: MewPurPur <mew.pur.pur@abv.bg>
Affected nodes:
- DirectionalLight3D, OmniLight3D, SpotLight3D
- ReflectionProbe
- LightmapGI
- VoxelGI
- GPUParticles3D (but not collision/attractor nodes)
- AudioStreamPlayer3D
This reduces visual clutter in the editor with 3D scenes.
The lack of icon gizmo made it no longer possible to select Camera3D
nodes in the 3D viewport by clicking on them.
A new Camera3D icon gizmo was designed to be direction-neutral.
This avoids the issue that the previous icon gizmo had, since it was
always facing right.
This also adds icons for CameraAttributesPractical and CameraAttributesPhysical.