pandemonium_engine/core
Relintai 22ce231a4e Backported from Godot 4: New and improved IK system for Skeleton3D
This PR and commit adds a new IK system for 3D with the Skeleton3D node
that adds several new IK solvers, as well as additional changes and functionality
for making bone manipulation in Godot easier.
This work was sponsored by GSoC 2020 and TwistedTwigleg
Full list of changes:
* Adds a SkeletonModification3D resource
  * This resource is the base where all IK code is written and executed
* Adds a SkeletonModificationStack3D resource
  * This node oversees the execution of the modifications and acts as a bridge of sorts for the modifications to the Skeleton3D node
* Adds SkeletonModification3D resources for LookAt, CCDIK, FABRIK, Jiggle, and TwoBoneIK
  * Each modification is in it's own file
* Several changes to Skeletons, listed below:
  * Added local_pose_override, which acts just like global_pose_override but keeps bone-child relationships intract
    * So if you move a bone using local_pose_override, all of the bones that are children will also be moved. This is different than global_pose_override, which only affects the individual bone
  * Internally bones keep track of their children. This removes the need of a processing list, makes it possible to update just a few select bones at a time, and makes it easier to traverse down the bone chain
  * Additional functions added for converting from world transform to global poses, global poses to local poses, and all the same changes but backwards (local to global, global to world). This makes it much easier to work with bone transforms without needing to think too much about how to convert them.
  * New signal added, bone_pose_changed, that can be used to tell if a specific bone changed its transform. Needed for BoneAttachment3D
  * Added functions for getting the forward position of a bone
* BoneAttachment3D node refactored heavily
  * BoneAttachment3D node is now completely standalone in its functionality.
    * This makes the code easier and less interconnected, as well as allowing them to function properly without being direct children of Skeleton3D nodes
  * BoneAttachment3D now can be set either using the index or the bone name.
  * BoneAttachment3D nodes can now set the bone transform instead of just following it. This is disabled by default for compatibility
  * BoneAttachment3D now shows a warning when not configured correctly
* Added rotate_to_align function in Basis
* Added class reference documentation for all changes
- TwistedTwigleg
5ffed49907
Note: It still needs some work.
2022-08-10 01:01:38 +02:00
..
bind File: Re-add support to skip CR (\r) in File::get_as_text 2022-08-02 17:58:32 +02:00
crypto Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
io Fix serializing variants into binary files. 2022-08-09 15:50:30 +02:00
log Cleaned up the log macros. 2022-06-11 18:07:21 +02:00
math Backported from Godot 4: New and improved IK system for Skeleton3D 2022-08-10 01:01:38 +02:00
os Added more helper methods to DirAccessRef and FileAccessRef. Also smaller cleanups. 2022-08-07 21:16:11 +02:00
array.cpp Ported: Add fill method to Array and PoolArrays - timothyqiu, DarknessCatt 2022-07-26 15:49:30 +02:00
array.h Ported: Add fill method to Array and PoolArrays - timothyqiu, DarknessCatt 2022-07-26 15:49:30 +02:00
bitfield_dynamic.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
bitfield_dynamic.h Clang format all files. 2022-03-18 19:00:13 +01:00
char_range.inc Added char utils header from godot4. 2022-08-08 01:27:57 +02:00
char_utils.h Added char utils header from godot4. 2022-08-08 01:27:57 +02:00
class_db.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
class_db.h Clang format all files. 2022-03-18 19:00:13 +01:00
color_names.inc Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
color.cpp Now Color::clamp() actually has an implementation. 2022-08-08 18:00:42 +02:00
color.h Added clamp() to color from Godot4. 2022-08-08 02:52:30 +02:00
command_queue_mt.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
command_queue_mt.h Clang format all files. 2022-03-18 19:00:13 +01:00
compressed_translation.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
compressed_translation.h Clang format all files. 2022-03-18 19:00:13 +01:00
core_builders.py Reworked the entries in the help menu. Also added pandemonium specific entries to the about window. Also fixed a crash when opening the about popup. 2022-03-20 13:30:49 +01:00
core_string_names.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
core_string_names.h Clang format all files. 2022-03-18 19:00:13 +01:00
cowdata.h Remove get_data() from CowData 2022-07-25 18:49:24 +02:00
dictionary.cpp Add Dictionary.merge() 2022-07-28 14:59:15 +02:00
dictionary.h Add Dictionary.merge() 2022-07-28 14:59:15 +02:00
engine.cpp Backported: Rename iterations_per_second to physics_ticks_per_second - Calinou - 937c1a716c 2022-03-24 11:10:56 +01:00
engine.h Backported: Rename iterations_per_second to physics_ticks_per_second - Calinou - 937c1a716c 2022-03-24 11:10:56 +01:00
error_list.h Clang format all files. 2022-03-18 19:00:13 +01:00
error_macros.cpp Errors: Fallback to fprintf if OS singleton doesn't exist 2022-07-29 16:31:28 +02:00
error_macros.h Clang format all files. 2022-03-18 19:00:13 +01:00
func_ref.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
func_ref.h Clang format all files. 2022-03-18 19:00:13 +01:00
global_constants.cpp Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
global_constants.h Clang format all files. 2022-03-18 19:00:13 +01:00
hash_map.h Clang format all files. 2022-03-18 19:00:13 +01:00
hash_set.h Added hash_set from godot4. 2022-08-07 21:08:37 +02:00
hashfuncs.h Uncommented hashing methods for the new types. 2022-08-07 23:31:58 +02:00
image.cpp Backported convert_rg_to_ra_rgba8 and convert_ra_rgba8_to_rg from Godot4's Image. 2022-08-08 02:39:21 +02:00
image.h Backported convert_rg_to_ra_rgba8 and convert_ra_rgba8_to_rg from Godot4's Image. 2022-08-08 02:39:21 +02:00
input_map.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
input_map.h Clang format all files. 2022-03-18 19:00:13 +01:00
int_types.h Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
list.h Clang format all files. 2022-03-18 19:00:13 +01:00
local_vector.h Optimized Mesh Merging 2022-07-28 13:46:56 +02:00
make_binders.py Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
map.h Clang format all files. 2022-03-18 19:00:13 +01:00
message_queue.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
message_queue.h Clang format all files. 2022-03-18 19:00:13 +01:00
method_bind.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
method_bind.h Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
method_ptrcall.h Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
node_path.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
node_path.h Clang format all files. 2022-03-18 19:00:13 +01:00
oa_hash_map.h Renamed OAHashMap's const lookup_ptr method to lookup_ptr_const. Also added back const qualifier to the other one. 2022-07-26 15:33:36 +02:00
object_id.h Clang format all files. 2022-03-18 19:00:13 +01:00
object_rc.h Clang format all files. 2022-03-18 19:00:13 +01:00
object.cpp fix get_meta() with defalt value 2022-07-28 10:19:20 +02:00
object.h Reused the old unused PROPERTY_HINT_SPRITE_FRAMES as PROPERTY_HINT_BUTTON. It allows you to add buttons to the inspectors. 2022-07-31 00:01:58 +02:00
ordered_hash_map.h Clang format all files. 2022-03-18 19:00:13 +01:00
packed_data_container.cpp Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
packed_data_container.h Clang format all files. 2022-03-18 19:00:13 +01:00
paged_allocator.h Clang format all files. 2022-03-18 19:00:13 +01:00
pair.h Backported helper classes to pair.h from Godot4. 2022-08-08 00:05:12 +02:00
path_remap.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
path_remap.h Clang format all files. 2022-03-18 19:00:13 +01:00
pool_allocator.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
pool_allocator.h Clang format all files. 2022-03-18 19:00:13 +01:00
pool_vector.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
pool_vector.h Ported sort() for poolVectors from 7b8b91f505 . 2022-07-29 21:18:44 +02:00
pooled_list.h Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
print_string.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
print_string.h Clang format all files. 2022-03-18 19:00:13 +01:00
project_settings.cpp Ported: ProjectSettings: Ensure 'editor/' settings aren't nested 2022-07-29 10:45:12 +02:00
project_settings.h Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
rb_map.h Fix more includes. 2022-08-07 22:45:50 +02:00
rb_set.h Added RBMap and EBSet from godot4. 2022-08-07 21:38:22 +02:00
ref_ptr.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
ref_ptr.h Clang format all files. 2022-03-18 19:00:13 +01:00
reference.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
reference.h Added a new templated WeakRef (WRef) class. 2022-08-04 14:31:00 +02:00
register_core_types.cpp Ported: Add NetworkedMultiplayerCustom so high-level multiplayer backends can be added from GDScript. - dsnopek 2022-07-29 22:19:12 +02:00
register_core_types.h Clang format all files. 2022-03-18 19:00:13 +01:00
resource.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
resource.h Clang format all files. 2022-03-18 19:00:13 +01:00
rid_handle.cpp Ported: Improve locking safety for RID handles builds. Additional locks are added. This is primarily to cover a potential race condition where the pool is resized from another thread during a get operation. - lawnjelly 2022-07-26 15:34:36 +02:00
rid_handle.h Ported: Improve locking safety for RID handles builds. Additional locks are added. This is primarily to cover a potential race condition where the pool is resized from another thread during a get operation. - lawnjelly 2022-07-26 15:34:36 +02:00
rid.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
rid.h Backported: RID: Change comparison operators to use RID_Data id instead of address. This should helps making sorting more deterministic in physics and rendering. The same change was done for 4.0 in 4f16397. - akien-mga - 797321fec4 2022-03-20 20:22:15 +01:00
ring_buffer.h Clang format all files. 2022-03-18 19:00:13 +01:00
safe_refcount.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
safe_refcount.h Use the right memory ordering in SafeNumeric operations 2022-07-29 21:58:53 +02:00
script_debugger_local.cpp Rename profiler "Idle Time" to "Process Time" 2022-07-27 15:08:06 +02:00
script_debugger_local.h Rename profiler "Idle Time" to "Process Time" 2022-07-27 15:08:06 +02:00
script_language.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
script_language.h Rename profiler "Idle Time" to "Process Time" 2022-07-27 15:08:06 +02:00
SCsub Added the new logging stuff to the build, and made everything compile. 2022-06-11 17:46:12 +02:00
self_list.h Clang format all files. 2022-03-18 19:00:13 +01:00
set.h Clang format all files. 2022-03-18 19:00:13 +01:00
simple_type.h Clang format all files. 2022-03-18 19:00:13 +01:00
sort_array.h Clang format all files. 2022-03-18 19:00:13 +01:00
string_buffer.h Clang format all files. 2022-03-18 19:00:13 +01:00
string_builder.cpp Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
string_builder.h Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
string_name.cpp Fix _scs_create's implementation. 2022-08-08 17:58:43 +02:00
string_name.h Backported the improvements to StringName from Godot4. 2022-08-08 17:26:23 +02:00
threaded_callable_queue.h Clang format all files. 2022-03-18 19:00:13 +01:00
translation.cpp Added godot with all my currently used engine modules. 2022-03-15 13:29:32 +01:00
translation.h Clang format all files. 2022-03-18 19:00:13 +01:00
type_info.h Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
typedefs.h Clang format all files. 2022-03-18 19:00:13 +01:00
ucaps.h Clang format all files. 2022-03-18 19:00:13 +01:00
undo_redo.cpp Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
undo_redo.h Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
ustring.cpp Ported uri_encode and uri_decode to String from Godot4. 2022-08-08 01:28:25 +02:00
ustring.h Ported contains for String from Godot4. 2022-08-08 16:06:34 +02:00
variant_call.cpp Ported sort() for poolVectors from 7b8b91f505 . 2022-07-29 21:18:44 +02:00
variant_op.cpp Fix regression with dictionaries because of the variant srtingname support. 2022-03-21 23:22:19 +01:00
variant_parser.cpp Increase line counter when parsing comments 2022-07-27 18:27:16 +02:00
variant_parser.h Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
variant.cpp Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
variant.h Added is_null() helper method to variant. 2022-03-22 09:38:10 +01:00
vector.h Backported the Vector function to_byte_array and slice 2022-07-26 15:05:54 +02:00
version.h Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
vmap.h Clang format all files. 2022-03-18 19:00:13 +01:00
vset.h Clang format all files. 2022-03-18 19:00:13 +01:00