Commit Graph

381 Commits

Author SHA1 Message Date
Danil Alexeev 32d1f518fa Improve editor-only class checking 2026-03-25 17:07:39 +03:00
Rémi Verschelde 98868393cc Style: Enforce #include validation hook 2026-03-18 10:41:59 +01:00
Rémi Verschelde e33e98a26f Style: Apply clang-format grouping rules 2026-03-17 20:11:01 +01:00
Rémi Verschelde 6d309c858e Remove unused includes in modules with clangd-tidy 2026-03-16 16:40:39 +01:00
Thaddeus Crews fcb7c06646 Merge pull request #109680 from ryevdokimov/preserve-children-transform
Add ability to transform parent nodes without affecting global transform of its children
2026-03-12 09:03:36 -05:00
Rémi Verschelde e015e8bde4 Remove unused includes in core with clangd-tidy 2026-03-11 06:41:36 +01:00
Robert Yevdokimov e8e3cf1fdb Add ability to transform parent nodes without affecting global transform of its children
Revert
2026-03-07 09:23:50 -05:00
Rémi Verschelde 2dd1f4ef60 Decouple node.h from scene_tree.h, minimize its other includes 2026-03-05 13:54:46 +01:00
Rémi Verschelde 18edfa5245 Explicitly include scene_tree.h where used
Pre-requisite before removing `scene_tree.h` from `node.h`
which has cascading consequences on most of the codebase.
2026-03-05 10:43:25 +01:00
StarryWorm 3cb2d376f8 Get rid of all unnecessary class_db.h includers 2026-03-04 17:40:05 -05:00
Thaddeus Crews 66a96d92c6 Merge pull request #116749 from Jesusemora/testing-changes
Add automatic smoothing for CSG nodes
2026-03-04 14:32:27 -06:00
Jesusemora 6114c6a266 autosmooth
added properties

update inspector

UX improvements

and minor optimizations

deg_to_rad

moved methods

move variables

performance and cleanup

Faster

Compare the angles/smooth of faces instead of vertices, skipping for loop.
Using a LocalVector instead of Vector, this simplifies the code while making it faster, and I don't think we need COW.

all done and working

Optimizations and cleanup

Clarifying and expanding the description of autosmooth and smoothing_angle properties.
Optimizations to skip steps in the loops:
Split loops to be able to skip vertices better and replace division with multiplication.
Suggestions for future changes.
Skip loop if smoothing_angle is lower than 0.1, as a more performant alternative to default smoothing.
Do not compare vertices that belong to the same triangle.
Remove has_smooth. Use a check at the start of the loop instead. This allows us to skip faces.
Perform normalize() at the end of the loop as we don't need the normal of the vertex afterwards, as we use the normal of the face for smoothing.  This way we skip normalizing flat faces.
If one vertex of a triangle is connected to the current vertex, the other 2 can never physically connect, so we skip them (break;). This isn't as reliable but it could add a slight performance increase.
I calculate a decrease of at least 80% of calculations in the for loops compared to the previous code.

Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2026-03-04 15:30:33 -03:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde 765362b033 Explicitly include core/config/engine.h where used 2026-03-04 10:17:10 +01:00
Parritz 45b60c0351 Editor: Fix CSG gizmo selection inside CSGCombiners 2026-03-02 15:52:30 -06:00
StarryWorm 357fa00a4a rm class_db.h from resource.h 2026-02-27 19:08:29 -05:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
Rémi Verschelde f0a448540e Misc dependency improvements for files depending on rendering_server.h
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 3s.
2026-02-25 20:17:27 +01:00
Rémi Verschelde f5a290ac46 Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.

With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.

On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
Rémi Verschelde 1c12d2c36e Tidy up includes in scene/main and scene/debugger 2026-02-19 15:09:29 +01:00
Lukas Tenbrink c56c297cee Remove geometry_3d include from rendering_server.h, to reduce compile time.
Change `Geometry3D` from class to namespace.
2026-01-27 18:12:38 +01:00
Thaddeus Crews 16a11ac88b Merge pull request #111358 from Ivorforce/no-variant-hasher
Remove `VariantHasher` and `VariantComparator` in favour of specialising `HashMapHasherDefault` and `HashMapComparatorDefault`.
2025-10-10 10:26:12 -05:00
Lukas Tenbrink d2ee378d1c Remove VariantHasher and VariantComparator in favour of specializing HashMapHasherDefault and HashMapComparatorDefault. 2025-10-07 13:47:39 +02:00
Thaddeus Crews b17aa3343a Revert "SCons: Add CPPEXTPATH for external includes" 2025-10-06 13:09:22 -05:00
Aaron Franke 3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Aaron Franke 9fbf5808a0 Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
Thaddeus Crews 4dec6af2c8 Merge pull request #108613 from Repiteo/scons/fix-defines
SCons: Ensure `CPPDEFINES` is properly utilized
2025-09-16 11:44:45 -05:00
Thaddeus Crews 33c257c081 Merge pull request #95414 from jsjtxietian/inside-tree
Fix `!is_inside_tree` in csg node when reloading a scene
2025-07-30 09:03:45 -05:00
Thaddeus Crews 61956f2e06 SCons: Ensure CPPDEFINES is properly utilized 2025-07-14 13:07:53 -05:00
smix8 c2f8e70aa0 Revert "Create more optimized CSGShape3D baked static mesh"
This reverts commit 28875459d9.
2025-07-04 20:43:28 +02:00
A Thousand Ships f11aff3841 Editor: Restructure editor code
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
smix8 28875459d9 Create more optimized CSGShape3D baked static mesh
Creates more optimized CSGShape3D baked static mesh by adding indices and cache optimization.
2025-06-13 21:43:28 +02:00
LuoZhihao 8ba4656ea3 Compile out editor-only logic within validate_property in games 2025-06-12 12:54:19 +08:00
Rémi Verschelde 61639d9574 Merge pull request #106996 from Ivorforce/no-oa-hashmap
Core: Remove `OAHashMap`, in favour of `AHashMap`
2025-06-05 13:12:34 +02:00
Jakub Marcowski f3da6201f8 manifold: Update to 3.1.1 2025-06-01 10:13:46 +02:00
Lukas Tenbrink 963c20565b Remove OAHashMap, in favour of AHashMap.
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +02:00
Thaddeus Crews 94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Thaddeus Crews ef3e8b1609 Merge pull request #102786 from Giganzo/top-toolbar-menu-button-styles
Fix MenuButton style in editor top menu bar
2025-04-10 10:18:10 -05:00
HolonProduction 02eab5e2c4 Editor: Improve capsule gizmos 2025-04-06 10:44:37 +02:00
Thaddeus Crews 1f56d96cf2 Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
Thaddeus Crews f25fc34439 SCons: Add CPPEXTPATH for external includes 2025-04-02 07:29:08 -05:00
Yufeng Ying 4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Michael Alexsander 556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
Rémi Verschelde ab5a3521f9 Merge pull request #104561 from Calinou/doc-csgshape3d-deferred-updates
Document CSGShape3D updates being deferred until the next frame
2025-03-28 17:30:23 +01:00
Michael Alexsander 5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03:00
Hugo Locurcio 38f43eb2ed Document CSGShape3D updates being deferred until the next frame
This affects several methods that users can call, such as `get_meshes()`,
`bake_static_mesh()`, and `bake_collision_shape()`.
2025-03-24 19:36:52 +01:00
Rémi Verschelde 18cd665202 Merge pull request #104206 from KoBeWi/unshape
Unbind `CSGShape::_update_shape()` and make it public
2025-03-19 12:27:23 +01:00
kobewi 6f25babd6b Remove empty constructors and destructors from editor/ 2025-03-17 21:20:02 +01:00
kobewi e64a07cc57 Unbind CSGShape::_update_shape() and make it public 2025-03-16 00:36:50 +01:00
kobewi 7cb2fb189a Remove TOOLS_ENABLED checks from editor/ 2025-03-14 18:13:16 +01:00