Commit Graph

83 Commits

Author SHA1 Message Date
251746a89c Add MeshInstance3D upgrade code 2025-11-13 13:43:17 +01:00
d27fb9b15a Remove default skeleton path in MeshInstance3D 2025-11-01 01:59:58 +01:00
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
149a4b4ca1 Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
2f5af689fd Fix the absolute NodePath was calculated incorrectly when "Reparent to New Node"
Since the new parent node has not yet been added to the tree, the
`new_base_path` needs to be calculated using the `base_path`.
2025-07-18 10:26:50 +08:00
14a814586a Provide quick access to Object ancestry 2025-06-23 07:11:11 +01:00
4bbafc8d0e Fix MeshInstance3D::get_active_material() error on empty mesh or empty surfaces
FixesMeshInstance3D::get_active_material() error on empty mesh or empty surfaces.
2025-06-19 02:55:54 +02:00
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
5ad414d046 Allow to compile templates without physics servers 2025-03-28 11:00:44 -03:00
0ed2cb0439 Make nodes handle their respective navigation source geometry
Makes nodes handle their respective navigation source geometry.
2025-01-12 13:14:46 +01:00
055b418e4d Fix Selection Game View 2025-01-10 09:53:17 -05:00
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
97e0b43faa Add ArrayMesh::surface_remove 2024-11-27 13:46:15 +01:00
b0e04c1e7a Sort blend shapes in the inspector by ID instead of alphabetically
Blend shapes (morph targets, shape keys) should be sorted by the physical order of the blend shapes, and that index should be converted to a name string.
2024-11-14 05:54:32 -08:00
d29e7b6953 Fix initial skin update timing in Skeleton3D 2024-10-16 05:13:13 +09:00
ab1f55e738 Merge pull request #97489 from TokageItLab/deferred-skin-registration
Move skin registration process into deferred on ready
2024-09-27 13:53:38 +02:00
2eb069f40b Move skin registration process into deferred on ready 2024-09-26 22:36:58 +09:00
a99a1699aa Add option to bake a mesh from animated skeleton pose
Adds option to bake a mesh from animated skeleton  pose.
2024-09-03 22:16:05 +02:00
194bdde947 Cleanup of raw nullptr checks with Ref
Using `is_valid/null` over checks with `nullptr` or `ERR_FAIL_NULL` etc.
2024-08-31 15:01:09 +02:00
5d6e8d7dff Add option to bake a mesh from blend shape mix
Adds option to bake a mesh from blend shape mix.
2024-04-10 23:35:28 +02:00
2854d0a7ca Expose MeshInstance3D.get_skin_reference and add docs 2024-04-10 14:12:25 +02:00
35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
c399424db9 Move 3D-only resources to their own folder 2024-02-26 05:23:04 -06:00
2dfa023135 Show revert button for MeshInstance3D blendshape values
Shows revert button for MeshInstance3D blendshape values.
2024-02-13 00:43:05 +01:00
4296f0a771 Fill remaining global scope constant descriptions 2023-11-13 15:17:10 +01:00
fcbf7011cc Make 3D editor gizmos and debug shapes ignore fog
This makes them easier to see in their intended colors in scenes with fog.
2023-09-27 00:54:57 +02:00
de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
1549aeaef8 Add Mesh ConvexDecompositionSettings wrapper
Adds wrapper MeshConvexDecompositionSettings to control parameters for Mesh ConvexDecomposition operations.
2023-04-07 22:39:25 +02:00
007b488a5c Fixed incorrect ERROR message when setting new PrimitiveMesh
If calling set_mesh with a PrimitiveMesh that has pending update, the
_mesh_changed function would be called twice. The first time before
set_base had been called, which could lead to an ERROR message about
trying to set an invalid surface override material.
2023-03-04 10:48:47 +01:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
1cc232ea4e Remove compatibility code for MeshInstance3D surface override material 2022-12-22 20:25:17 -07:00
1a890b1641 Switch surface indexing to start at 0 so string name matches integer index 2022-12-16 16:26:46 -08:00
db0b990e2c Merge pull request #69527 from clayjohn/surface-name
Index override surface name starting from 1 to match surface name
2022-12-14 00:20:13 +01:00
29dea68bab Index override surface name starting from 1 to match surface name 2022-12-07 11:56:39 -08:00
08d7c24ebe [TextMesh] Fix autotranslate. 2022-12-04 23:04:48 +02:00
93ab82536d Use a more specific type for Mesh create_(convex|trimesh)_shape 2022-11-25 11:43:11 -06:00
0103af1ddd Fix MSVC warnings, rename shadowed variables, fix uninitialized values, change warnings=all to use /W4. 2022-10-07 11:32:33 +03:00
bad
a052ebaa99 Move "Create Debug Tangents" into an editor plugin
Instead of exporting the "create_debug_tangents" function via
METHOD_FLAG_EDITOR it gets executed by an editor plugin.

This moves it from the "Manage object properties" menu into a mesh menu. It also adds undo/redo functionality to the create debug tangents option.
2022-10-03 23:34:01 +02:00
76b4041f38 Fixed surface material overrides are not applied when the new mesh is set 2022-08-30 12:43:59 +07:00
fc3b845c07 Add dedicated macros for property name extraction
* Replace case-by-case extraction with PNAME & GNAME
* Fix group handling when group hint begins with property name
* Exclude properties that are PROPERTY_USAGE_NO_EDITOR
* Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-19 14:08:47 +08:00
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
6f51eca1e3 Discern between virtual and abstract class bindings
* Previous "virtual" classes (which can't be instantiated) are not corretly named "abstract".
* Added a new "virtual" category for classes, they can't be instantiated from the editor, but can be inherited from script and extensions.
* Converted a large amount of classes from "abstract" to "virtual" where it makes sense.

Most classes that make sense have been converted. Missing:

* Physics servers
* VideoStream
* Script* classes.

which will go in a separate PR due to the complexity involved.
2022-03-10 12:28:11 +01:00
0f5455230c Use switch consistently in _notification (scene folder) 2022-02-15 18:44:55 +01:00
fe52458154 Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
de4f29f458 Remove node_hrcr hack 2021-10-28 01:43:34 +02:00
ae1c016547 Implement Animation Blend Shape Tracks
* New track type BLEND_SHAPE
* Blend shapes are imported via this new track type
* Processing is more optimized (no longer relies on variants)
* Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
* Promo: Fixed a small bug in gizmo updating in Node3D that affected performance

Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
2021-10-16 08:36:05 -03:00
2dc823273e Remove REST transform influence in skeleton bones
* Animations and Skeletons are now pose-only.
* Rest transform is kept as reference (when it exists) and for IK
* Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
2021-10-13 14:51:29 -03:00