There is currently no description for this method. Please help us by contributing one!
@@ -101,11 +101,11 @@ There is currently no description for this method. Please help us by contributin
[🔗](#SignalSmith_method_get_last_sample_rate)
+[int](int.md) **get_last_sample_rate**\ (\ )
There is currently no description for this method. Please help us by contributing one!
@@ -114,11 +114,11 @@ There is currently no description for this method. Please help us by contributin
-
+
-[PackedFloat32Array](PackedFloat32Array.md) **process**\ (\ input\: [PackedFloat32Array](PackedFloat32Array.md)\ ) [🔗](#SignalSmith_method_process)
+[PackedFloat32Array](PackedFloat32Array.md) **process**\ (\ input\: [PackedFloat32Array](PackedFloat32Array.md)\ ) [🔗](#SoundSmith_method_process)
Processes a block of interleaved audio samples and returns a new buffer containing the time-stretched and pitch-shifted result.
@@ -126,11 +126,11 @@ The effective playback speed is determined by the ratio of input samples to outp
-
+
-`void` **reset**\ (\ ) [🔗](#SignalSmith_method_reset)
+`void` **reset**\ (\ ) [🔗](#SoundSmith_method_reset)
Resets the internal processing state.
@@ -138,11 +138,11 @@ This should be called when restarting playback or discontinuously changing input
-
+
-`void` **set_channels**\ (\ channels\: [int](int.md)\ ) [🔗](#SignalSmith_method_set_channels)
+`void` **set_channels**\ (\ channels\: [int](int.md)\ ) [🔗](#SoundSmith_method_set_channels)
Sets the number of audio channels.
@@ -150,11 +150,11 @@ Input and output buffers are expected to be interleaved according to this channe
-
+
-`void` **set_pitch**\ (\ pitch\: [float](float.md)\ ) [🔗](#SignalSmith_method_set_pitch)
+`void` **set_pitch**\ (\ pitch\: [float](float.md)\ ) [🔗](#SoundSmith_method_set_pitch)
Sets the pitch transpose factor.
@@ -162,11 +162,11 @@ A value of `1.0` leaves pitch unchanged. Values greater than `1.0` raise pitch,
-
+
-`void` **set_sample_rate**\ (\ rate\: [int](int.md)\ ) [🔗](#SignalSmith_method_set_sample_rate)
+`void` **set_sample_rate**\ (\ rate\: [int](int.md)\ ) [🔗](#SoundSmith_method_set_sample_rate)
Sets the sample rate, in Hz, used by the internal processing engine.
@@ -174,11 +174,11 @@ Changing the sample rate resets the internal state.
-
+
-`void` **set_tempo**\ (\ tempo\: [float](float.md)\ ) [🔗](#SignalSmith_method_set_tempo)
+`void` **set_tempo**\ (\ tempo\: [float](float.md)\ ) [🔗](#SoundSmith_method_set_tempo)
Sets the tempo multiplier used during processing.
diff --git a/docs/Classes/SplineIK3D.md b/docs/Classes/SplineIK3D.md
new file mode 100644
index 00000000..f275c01d
--- /dev/null
+++ b/docs/Classes/SplineIK3D.md
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+# SplineIK3D
+
+**Inherits:** [ChainIK3D](ChainIK3D.md) **\<** [IKModifier3D](IKModifier3D.md) **\<** [SkeletonModifier3D](SkeletonModifier3D.md) **\<** [Node3D](Node3D.md) **\<** [Node](Node.md) **\<** [Object](Object.md)
+
+A [SkeletonModifier3D](SkeletonModifier3D.md) for aligning bones along a [Path3D](Path3D.md).
+
+
+
+## Description
+
+A [SkeletonModifier3D](SkeletonModifier3D.md) for aligning bones along a [Path3D](Path3D.md). The smoothness of the fitting depends on the [Curve3D.bake_interval](Curve3D.md#Curve3D_property_bake_interval).
+
+If you want the [Path3D](Path3D.md) to attach to a specific bone, it is recommended to place a [ModifierBoneTarget3D](ModifierBoneTarget3D.md) before the **SplineIK3D** in the [SkeletonModifier3D](SkeletonModifier3D.md) list (children of the [Skeleton3D](Skeleton3D.md)), and then place a [Path3D](Path3D.md) as the [ModifierBoneTarget3D](ModifierBoneTarget3D.md)'s child.
+
+Bone twist is determined based on the [Curve3D.get_point_tilt()](Curve3D.md#Curve3D_method_get_point_tilt).
+
+If the root bone joint and the start point of the [Curve3D](Curve3D.md) are separated, it assumes that there is a linear line segment between them. This means that the vector pointing toward the start point of the [Curve3D](Curve3D.md) takes precedence over the shortest intersection point along the [Curve3D](Curve3D.md).
+
+If the end bone joint exceeds the path length, it is bent as close as possible to the end point of the [Curve3D](Curve3D.md).
+
+
+
+## Properties
+
+
+
+
+ | [int](int.md) |
+ [setting_count](#SplineIK3D_property_setting_count) |
+ `0` |
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+ | [NodePath](NodePath.md) |
+ [get_path_3d](#SplineIK3D_method_get_path_3d)\ (\ index\: [int](int.md)\ ) const |
+
+
+
+
+ | [int](int.md) |
+ [get_tilt_fade_in](#SplineIK3D_method_get_tilt_fade_in)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [int](int.md) |
+ [get_tilt_fade_out](#SplineIK3D_method_get_tilt_fade_out)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [bool](bool.md) |
+ [is_tilt_enabled](#SplineIK3D_method_is_tilt_enabled)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | `void` |
+ [set_path_3d](#SplineIK3D_method_set_path_3d)\ (\ index\: [int](int.md), path_3d\: [NodePath](NodePath.md)\ ) |
+
+
+ | `void` |
+ [set_tilt_enabled](#SplineIK3D_method_set_tilt_enabled)\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) |
+
+
+ | `void` |
+ [set_tilt_fade_in](#SplineIK3D_method_set_tilt_fade_in)\ (\ index\: [int](int.md), size\: [int](int.md)\ ) |
+
+
+ | `void` |
+ [set_tilt_fade_out](#SplineIK3D_method_set_tilt_fade_out)\ (\ index\: [int](int.md), size\: [int](int.md)\ ) |
+
+
+
+
+
+
+
+
+## Property Descriptions
+
+
+
+
+
+[int](int.md) **setting_count** = `0` [🔗](#SplineIK3D_property_setting_count)
+
+
+
+- `void` **set_setting_count**\ (\ value\: [int](int.md)\ )
+- [int](int.md) **get_setting_count**\ (\ )
+
+The number of settings.
+
+
+
+
+
+## Method Descriptions
+
+
+
+
+
+[NodePath](NodePath.md) **get_path_3d**\ (\ index\: [int](int.md)\ )
const [🔗](#SplineIK3D_method_get_path_3d)
+
+Returns the node path of the [Path3D](Path3D.md) which is describing the path.
+
+
+
+
+
+
+
+[int](int.md) **get_tilt_fade_in**\ (\ index\: [int](int.md)\ )
const [🔗](#SplineIK3D_method_get_tilt_fade_in)
+
+Returns the tilt interpolation method used between the root bone and the start point of the [Curve3D](Curve3D.md) when they are apart. See also [set_tilt_fade_in()](SplineIK3D.md#SplineIK3D_method_set_tilt_fade_in).
+
+
+
+
+
+
+
+[int](int.md) **get_tilt_fade_out**\ (\ index\: [int](int.md)\ )
const [🔗](#SplineIK3D_method_get_tilt_fade_out)
+
+Returns the tilt interpolation method used between the end bone and the end point of the [Curve3D](Curve3D.md) when they are apart. See also [set_tilt_fade_out()](SplineIK3D.md#SplineIK3D_method_set_tilt_fade_out).
+
+
+
+
+
+
+
+[bool](bool.md) **is_tilt_enabled**\ (\ index\: [int](int.md)\ )
const [🔗](#SplineIK3D_method_is_tilt_enabled)
+
+Returns if the tilt property of the [Curve3D](Curve3D.md) affects the bone twist.
+
+
+
+
+
+
+
+`void` **set_path_3d**\ (\ index\: [int](int.md), path_3d\: [NodePath](NodePath.md)\ ) [🔗](#SplineIK3D_method_set_path_3d)
+
+Sets the node path of the [Path3D](Path3D.md) which is describing the path.
+
+
+
+
+
+
+
+`void` **set_tilt_enabled**\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) [🔗](#SplineIK3D_method_set_tilt_enabled)
+
+Sets if the tilt property of the [Curve3D](Curve3D.md) should affect the bone twist.
+
+
+
+
+
+
+
+`void` **set_tilt_fade_in**\ (\ index\: [int](int.md), size\: [int](int.md)\ ) [🔗](#SplineIK3D_method_set_tilt_fade_in)
+
+If `size` is greater than ``0``, the tilt is interpolated between `size` start bones from the start point of the [Curve3D](Curve3D.md) when they are apart.
+
+If `size` is equal ``0``, the tilts between the root bone head and the start point of the [Curve3D](Curve3D.md) are unified with a tilt of the start point of the [Curve3D](Curve3D.md).
+
+If `size` is less than ``0``, the tilts between the root bone and the start point of the [Curve3D](Curve3D.md) are ``0.0``.
+
+
+
+
+
+
+
+`void` **set_tilt_fade_out**\ (\ index\: [int](int.md), size\: [int](int.md)\ ) [🔗](#SplineIK3D_method_set_tilt_fade_out)
+
+If `size` is greater than ``0``, the tilt is interpolated between `size` end bones from the end point of the [Curve3D](Curve3D.md) when they are apart.
+
+If `size` is equal ``0``, the tilts between the end bone tail and the end point of the [Curve3D](Curve3D.md) are unified with a tilt of the end point of the [Curve3D](Curve3D.md).
+
+If `size` is less than ``0``, the tilts between the end bone and the end point of the [Curve3D](Curve3D.md) are ``0.0``.
+
diff --git a/docs/Classes/SpringBoneSimulator3D.md b/docs/Classes/SpringBoneSimulator3D.md
index 13d7e2c9..a220496e 100644
--- a/docs/Classes/SpringBoneSimulator3D.md
+++ b/docs/Classes/SpringBoneSimulator3D.md
@@ -44,6 +44,11 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
+
+ | [bool](bool.md) |
+ [mutable_bone_axes](#SpringBoneSimulator3D_property_mutable_bone_axes) |
+ `true` |
+
| [int](int.md) |
[setting_count](#SpringBoneSimulator3D_property_setting_count) |
@@ -113,7 +118,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
[get_end_bone](#SpringBoneSimulator3D_method_get_end_bone)\ (\ index\: [int](int.md)\ ) const |
- | [BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) |
+ [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection) |
[get_end_bone_direction](#SpringBoneSimulator3D_method_get_end_bone_direction)\ (\ index\: [int](int.md)\ ) const |
@@ -173,7 +178,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
| [get_joint_radius](#SpringBoneSimulator3D_method_get_joint_radius)\ (\ index\: [int](int.md), joint\: [int](int.md)\ ) const |
- | [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) |
+ [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis) |
[get_joint_rotation_axis](#SpringBoneSimulator3D_method_get_joint_rotation_axis)\ (\ index\: [int](int.md), joint\: [int](int.md)\ ) const |
@@ -201,7 +206,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
| [get_root_bone_name](#SpringBoneSimulator3D_method_get_root_bone_name)\ (\ index\: [int](int.md)\ ) const |
- | [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) |
+ [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis) |
[get_rotation_axis](#SpringBoneSimulator3D_method_get_rotation_axis)\ (\ index\: [int](int.md)\ ) const |
@@ -270,7 +275,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
| `void` |
- [set_end_bone_direction](#SpringBoneSimulator3D_method_set_end_bone_direction)\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection)\ ) |
+ [set_end_bone_direction](#SpringBoneSimulator3D_method_set_end_bone_direction)\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection)\ ) |
| `void` |
@@ -326,7 +331,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
| `void` |
- [set_joint_rotation_axis](#SpringBoneSimulator3D_method_set_joint_rotation_axis)\ (\ index\: [int](int.md), joint\: [int](int.md), axis\: [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis)\ ) |
+ [set_joint_rotation_axis](#SpringBoneSimulator3D_method_set_joint_rotation_axis)\ (\ index\: [int](int.md), joint\: [int](int.md), axis\: [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis)\ ) |
| `void` |
@@ -354,7 +359,7 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
| `void` |
- [set_rotation_axis](#SpringBoneSimulator3D_method_set_rotation_axis)\ (\ index\: [int](int.md), axis\: [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis)\ ) |
+ [set_rotation_axis](#SpringBoneSimulator3D_method_set_rotation_axis)\ (\ index\: [int](int.md), axis\: [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis)\ ) |
| `void` |
@@ -377,56 +382,6 @@ For physical simulation, **SpringBoneSimulator3D** can have children as self-sta
## Enumerations
-
-
-
-
-enum **BoneDirection**: [🔗](#enum_SpringBoneSimulator3D_BoneDirection)
-
-
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_PLUS_X** = `0`
-
-Enumerated value for the +X axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_MINUS_X** = `1`
-
-Enumerated value for the -X axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_PLUS_Y** = `2`
-
-Enumerated value for the +Y axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_MINUS_Y** = `3`
-
-Enumerated value for the -Y axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_PLUS_Z** = `4`
-
-Enumerated value for the +Z axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_MINUS_Z** = `5`
-
-Enumerated value for the -Z axis.
-
-
-
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **BONE_DIRECTION_FROM_PARENT** = `6`
-
-Enumerated value for the axis from a parent bone to the child bone.
-
@@ -455,45 +410,7 @@ If [Node3D](Node3D.md) is not found, the parent [Skeleton3D](Skeleton3D.md) is t
The bone pose origin of the parent [Skeleton3D](Skeleton3D.md) specified by [set_center_bone()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_set_center_bone) is defined as center.
-If [Node3D](Node3D.md) is not found, the parent [Skeleton3D](Skeleton3D.md) is treated as center.
-
-
-
-
-
-enum **RotationAxis**: [🔗](#enum_SpringBoneSimulator3D_RotationAxis)
-
-
-
-
-
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **ROTATION_AXIS_X** = `0`
-
-Enumerated value for the rotation of the X axis.
-
-
-
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **ROTATION_AXIS_Y** = `1`
-
-Enumerated value for the rotation of the Y axis.
-
-
-
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **ROTATION_AXIS_Z** = `2`
-
-Enumerated value for the rotation of the Z axis.
-
-
-
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **ROTATION_AXIS_ALL** = `3`
-
-Enumerated value for the unconstrained rotation.
-
-
-
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **ROTATION_AXIS_CUSTOM** = `4`
-
-Enumerated value for an optional rotation axis. See also [set_joint_rotation_axis_vector()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_set_joint_rotation_axis_vector).
+If [Node3D](Node3D.md) is not found, the parent [Skeleton3D](Skeleton3D.md) is treated as center.
@@ -516,6 +433,23 @@ This is useful for effects such as wind and anti-gravity.
+
+
+
+
+[bool](bool.md) **mutable_bone_axes** = `true` [🔗](#SpringBoneSimulator3D_property_mutable_bone_axes)
+
+
+
+- `void` **set_mutable_bone_axes**\ (\ value\: [bool](bool.md)\ )
+- [bool](bool.md) **are_bone_axes_mutable**\ (\ )
+
+If ``true``, the solver retrieves the bone axis from the bone pose every frame.
+
+If ``false``, the solver retrieves the bone axis from the bone rest and caches it, which increases performance slightly, but position changes in the bone pose made before processing this **SpringBoneSimulator3D** are ignored.
+
+
+
@@ -669,9 +603,9 @@ Returns the end bone index of the bone chain.
-[BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection) **get_end_bone_direction**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_end_bone_direction)
+[BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection) **get_end_bone_direction**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_end_bone_direction)
-Returns the end bone's tail direction of the bone chain when [is_end_bone_extended()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_end_bone_extended) is ``true``.
+Returns the tail direction of the end bone of the bone chain when [is_end_bone_extended()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_end_bone_extended) is ``true``.
@@ -681,7 +615,7 @@ Returns the end bone's tail direction of the bone chain when [is_end_bone_extend
[float](float.md) **get_end_bone_length**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_end_bone_length)
-Returns the end bone's tail length of the bone chain when [is_end_bone_extended()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_end_bone_extended) is ``true``.
+Returns the end bone tail length of the bone chain when [is_end_bone_extended()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_end_bone_extended) is ``true``.
@@ -819,7 +753,7 @@ Returns the radius at `joint` in the bone chain's joint list.
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **get_joint_rotation_axis**\ (\ index\: [int](int.md), joint\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_joint_rotation_axis)
+[RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis) **get_joint_rotation_axis**\ (\ index\: [int](int.md), joint\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_joint_rotation_axis)
Returns the rotation axis at `joint` in the bone chain's joint list.
@@ -833,7 +767,7 @@ Returns the rotation axis at `joint` in the bone chain's joint list.
Returns the rotation axis vector for the specified joint in the bone chain. This vector represents the axis around which the joint can rotate. It is determined based on the rotation axis set for the joint.
-If [get_joint_rotation_axis()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_get_joint_rotation_axis) is [ROTATION_AXIS_ALL](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_ALL), this method returns ``Vector3(0, 0, 0)``.
+If [get_joint_rotation_axis()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_get_joint_rotation_axis) is [SkeletonModifier3D.ROTATION_AXIS_ALL](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_ALL), this method returns ``Vector3(0, 0, 0)``.
@@ -891,7 +825,7 @@ Returns the root bone name of the bone chain.
-[RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis) **get_rotation_axis**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_rotation_axis)
+[RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis) **get_rotation_axis**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_get_rotation_axis)
Returns the rotation axis of the bone chain.
@@ -905,7 +839,7 @@ Returns the rotation axis of the bone chain.
Returns the rotation axis vector of the bone chain. This vector represents the axis around which the bone chain can rotate. It is determined based on the rotation axis set for the bone chain.
-If [get_rotation_axis()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_get_rotation_axis) is [ROTATION_AXIS_ALL](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_ALL), this method returns ``Vector3(0, 0, 0)``.
+If [get_rotation_axis()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_get_rotation_axis) is [SkeletonModifier3D.ROTATION_AXIS_ALL](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_ALL), this method returns ``Vector3(0, 0, 0)``.
@@ -945,7 +879,7 @@ Returns ``true`` if the config can be edited individually for each joint.
[bool](bool.md) **is_end_bone_extended**\ (\ index\: [int](int.md)\ ) const [🔗](#SpringBoneSimulator3D_method_is_end_bone_extended)
-Returns ``true`` if the end bone is extended to have the tail.
+Returns ``true`` if the end bone is extended to have a tail.
@@ -1075,7 +1009,7 @@ Sets the end bone index of the bone chain.
-`void` **set_end_bone_direction**\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_BoneDirection)\ ) [🔗](#SpringBoneSimulator3D_method_set_end_bone_direction)
+`void` **set_end_bone_direction**\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection)\ ) [🔗](#SpringBoneSimulator3D_method_set_end_bone_direction)
Sets the end bone tail direction of the bone chain when [is_end_bone_extended()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_end_bone_extended) is ``true``.
@@ -1129,11 +1063,9 @@ Sets the node path of the [SpringBoneCollision3D](SpringBoneCollision3D.md) at `
`void` **set_extend_end_bone**\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) [🔗](#SpringBoneSimulator3D_method_set_extend_end_bone)
-If `enabled` is ``true``, the end bone is extended to have the tail.
-
-The extended tail config is allocated to the last element in the joint list.
+If `enabled` is ``true``, the end bone is extended to have a tail.
-In other words, if you set `enabled` is ``false``, the config of last element in the joint list has no effect in the simulated result.
+The extended tail config is allocated to the last element in the joint list. In other words, if you set `enabled` to ``false``, the config of the last element in the joint list has no effect in the simulated result.
@@ -1227,11 +1159,11 @@ Sets the joint radius at `joint` in the bone chain's joint list when [is_config_
-`void` **set_joint_rotation_axis**\ (\ index\: [int](int.md), joint\: [int](int.md), axis\: [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis)\ ) [🔗](#SpringBoneSimulator3D_method_set_joint_rotation_axis)
+`void` **set_joint_rotation_axis**\ (\ index\: [int](int.md), joint\: [int](int.md), axis\: [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis)\ ) [🔗](#SpringBoneSimulator3D_method_set_joint_rotation_axis)
Sets the rotation axis at `joint` in the bone chain's joint list when [is_config_individual()](SpringBoneSimulator3D.md#SpringBoneSimulator3D_method_is_config_individual) is ``true``.
-The axes are based on the [Skeleton3D.get_bone_rest()](Skeleton3D.md#Skeleton3D_method_get_bone_rest)'s space, if `axis` is [ROTATION_AXIS_CUSTOM](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_CUSTOM), you can specify any axis.
+The axes are based on the [Skeleton3D.get_bone_rest()](Skeleton3D.md#Skeleton3D_method_get_bone_rest)'s space, if `axis` is [SkeletonModifier3D.ROTATION_AXIS_CUSTOM](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_CUSTOM), you can specify any axis.
\ **Note:** The rotation axis and the forward vector shouldn't be colinear to avoid unintended rotation since **SpringBoneSimulator3D** does not factor in twisting forces.
@@ -1247,7 +1179,7 @@ Sets the rotation axis vector for the specified joint in the bone chain.
This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
-If the vector length is ``0``, it is considered synonymous with [ROTATION_AXIS_ALL](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_ALL).
+If the vector length is ``0``, it is considered synonymous with [SkeletonModifier3D.ROTATION_AXIS_ALL](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_ALL).
@@ -1307,11 +1239,11 @@ Sets the root bone name of the bone chain.
-`void` **set_rotation_axis**\ (\ index\: [int](int.md), axis\: [RotationAxis](SpringBoneSimulator3D.md#enum_SpringBoneSimulator3D_RotationAxis)\ ) [🔗](#SpringBoneSimulator3D_method_set_rotation_axis)
+`void` **set_rotation_axis**\ (\ index\: [int](int.md), axis\: [RotationAxis](SkeletonModifier3D.md#enum_SkeletonModifier3D_RotationAxis)\ ) [🔗](#SpringBoneSimulator3D_method_set_rotation_axis)
Sets the rotation axis of the bone chain. If set to a specific axis, it acts like a hinge joint. The value is cached in each joint setting in the joint list.
-The axes are based on the [Skeleton3D.get_bone_rest()](Skeleton3D.md#Skeleton3D_method_get_bone_rest)'s space, if `axis` is [ROTATION_AXIS_CUSTOM](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_CUSTOM), you can specify any axis.
+The axes are based on the [Skeleton3D.get_bone_rest()](Skeleton3D.md#Skeleton3D_method_get_bone_rest)'s space, if `axis` is [SkeletonModifier3D.ROTATION_AXIS_CUSTOM](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_CUSTOM), you can specify any axis.
\ **Note:** The rotation axis vector and the forward vector shouldn't be colinear to avoid unintended rotation since **SpringBoneSimulator3D** does not factor in twisting forces.
@@ -1327,7 +1259,7 @@ Sets the rotation axis vector of the bone chain. The value is cached in each joi
This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
-If the vector length is ``0``, it is considered synonymous with [ROTATION_AXIS_ALL](SpringBoneSimulator3D.md#SpringBoneSimulator3D_constant_ROTATION_AXIS_ALL).
+If the vector length is ``0``, it is considered synonymous with [SkeletonModifier3D.ROTATION_AXIS_ALL](SkeletonModifier3D.md#SkeletonModifier3D_constant_ROTATION_AXIS_ALL).
diff --git a/docs/Classes/SpriteBase3D.md b/docs/Classes/SpriteBase3D.md
index 2780da61..cfda726b 100644
--- a/docs/Classes/SpriteBase3D.md
+++ b/docs/Classes/SpriteBase3D.md
@@ -348,7 +348,7 @@ The direction in which the front of the texture faces.
The billboard mode to use for the sprite.
-\ **Note:** When billboarding is enabled and the material also casts shadows, billboards will face **the** camera in the scene when rendering shadows. In scenes with multiple cameras, the intended shadow cannot be determined and this will result in undefined behavior. See [GitHub Pull Request #72638](https://github.com/redot-engine/redot-engine/pull/72638) for details.
+\ **Note:** When billboarding is enabled and the material also casts shadows, billboards will face **the** camera in the scene when rendering shadows. In scenes with multiple cameras, the intended shadow cannot be determined and this will result in undefined behavior. See [GitHub Pull Request #72638](https://github.com/godotengine/godot/pull/72638) for details.
diff --git a/docs/Classes/String.md b/docs/Classes/String.md
index 019e743f..c56590ce 100644
--- a/docs/Classes/String.md
+++ b/docs/Classes/String.md
@@ -2301,14 +2301,14 @@ Decodes the string from its URL-encoded format. This method is meant to properly
```gdscript
- var url = "$DOCS_URL/?highlight=Redot%20Engine%3%docs"
- print(url.uri_decode()) # Prints "$DOCS_URL/?highlight=Redot Engine:docs"
+ var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
+ print(url.uri_decode()) # Prints "$DOCS_URL/?highlight=Godot Engine:docs"
```
```csharp
- var url = "$DOCS_URL/?highlight=Redot%20Engine%3%docs"
- GD.Print(url.URIDecode()) // Prints "$DOCS_URL/?highlight=Redot Engine:docs"
+ var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
+ GD.Print(url.URIDecode()) // Prints "$DOCS_URL/?highlight=Godot Engine:docs"
```
@@ -2333,7 +2333,7 @@ Encodes the string to URL-friendly format. This method is meant to properly enco
var prefix = "$DOCS_URL/?highlight="
var url = prefix + "Redot Engine:docs".uri_encode()
- print(url) # Prints "$DOCS_URL/?highlight=Redot%20Engine%3%docs"
+ print(url) # Prints "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
```
@@ -2341,7 +2341,7 @@ Encodes the string to URL-friendly format. This method is meant to properly enco
var prefix = "$DOCS_URL/?highlight=";
var url = prefix + "Redot Engine:docs".URIEncode();
- GD.Print(url); // Prints "$DOCS_URL/?highlight=Redot%20Engine%3%docs"
+ GD.Print(url); // Prints "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
```
diff --git a/docs/Classes/TranslationServer.md b/docs/Classes/TranslationServer.md
index 83a38b10..174a627c 100644
--- a/docs/Classes/TranslationServer.md
+++ b/docs/Classes/TranslationServer.md
@@ -19,7 +19,7 @@ The server responsible for language translations.
The translation server is the API backend that manages all language translations.
-Translations are stored in [TranslationDomain](TranslationDomain.md)\\ s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty [StringName](StringName.md). The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with ``Redot.`` are reserved for engine internals.
+Translations are stored in [TranslationDomain](TranslationDomain.md)\\ s, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty [StringName](StringName.md). The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with ``godot.`` are reserved for engine internals.
diff --git a/docs/Classes/Tree.md b/docs/Classes/Tree.md
index f994f5a1..3ba28ea3 100644
--- a/docs/Classes/Tree.md
+++ b/docs/Classes/Tree.md
@@ -985,6 +985,8 @@ If ``true``, column titles are visible.
The number of columns.
+Prints an error and does not allow setting the columns during mouse selection.
+
@@ -1106,6 +1108,8 @@ Allows single or multiple selection. See the [SelectMode](Tree.md#enum_Tree_Sele
Clears the tree. This removes all items.
+Prints an error and does not allow clearing the tree if called during mouse selection.
+
@@ -1120,6 +1124,8 @@ If `parent` is ``null``, the root item will be the parent, or the new item will
The new item will be the `index`-th child of parent, or it will be the last child if there are not enough siblings.
+Prints an error and returns ``null`` if called during mouse selection, or if the `parent` does not belong to this tree.
+
diff --git a/docs/Classes/TwoBoneIK3D.md b/docs/Classes/TwoBoneIK3D.md
new file mode 100644
index 00000000..e2f001be
--- /dev/null
+++ b/docs/Classes/TwoBoneIK3D.md
@@ -0,0 +1,481 @@
+
+
+
+
+
+
+
+
+
+# TwoBoneIK3D
+
+**Inherits:** [IKModifier3D](IKModifier3D.md) **\<** [SkeletonModifier3D](SkeletonModifier3D.md) **\<** [Node3D](Node3D.md) **\<** [Node](Node.md) **\<** [Object](Object.md)
+
+Rotation based intersection of two circles inverse kinematics solver.
+
+
+
+## Description
+
+This [IKModifier3D](IKModifier3D.md) requires a pole target. It provides deterministic results by constructing a plane from each joint and pole target and finding the intersection of two circles (disks in 3D).
+
+This IK can handle twist by setting the pole direction. If there are more than one bone between each set bone, their rotations are ignored, and the straight line connecting the root-middle and middle-end joints are treated as virtual bones.
+
+
+
+## Properties
+
+
+
+
+ | [int](int.md) |
+ [setting_count](#TwoBoneIK3D_property_setting_count) |
+ `0` |
+
+
+
+
+
+
+
+
+## Methods
+
+
+
+
+ | [int](int.md) |
+ [get_end_bone](#TwoBoneIK3D_method_get_end_bone)\ (\ index\: [int](int.md)\ ) const |
+
+
+
+
+ | [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection) |
+ [get_end_bone_direction](#TwoBoneIK3D_method_get_end_bone_direction)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [float](float.md) |
+ [get_end_bone_length](#TwoBoneIK3D_method_get_end_bone_length)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [String](String.md) |
+ [get_end_bone_name](#TwoBoneIK3D_method_get_end_bone_name)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [int](int.md) |
+ [get_middle_bone](#TwoBoneIK3D_method_get_middle_bone)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [String](String.md) |
+ [get_middle_bone_name](#TwoBoneIK3D_method_get_middle_bone_name)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [SecondaryDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_SecondaryDirection) |
+ [get_pole_direction](#TwoBoneIK3D_method_get_pole_direction)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [Vector3](Vector3.md) |
+ [get_pole_direction_vector](#TwoBoneIK3D_method_get_pole_direction_vector)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [NodePath](NodePath.md) |
+ [get_pole_node](#TwoBoneIK3D_method_get_pole_node)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [int](int.md) |
+ [get_root_bone](#TwoBoneIK3D_method_get_root_bone)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [String](String.md) |
+ [get_root_bone_name](#TwoBoneIK3D_method_get_root_bone_name)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [NodePath](NodePath.md) |
+ [get_target_node](#TwoBoneIK3D_method_get_target_node)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [bool](bool.md) |
+ [is_end_bone_extended](#TwoBoneIK3D_method_is_end_bone_extended)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | [bool](bool.md) |
+ [is_using_virtual_end](#TwoBoneIK3D_method_is_using_virtual_end)\ (\ index\: [int](int.md)\ ) const |
+
+
+ | `void` |
+ [set_end_bone](#TwoBoneIK3D_method_set_end_bone)\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) |
+
+
+ | `void` |
+ [set_end_bone_direction](#TwoBoneIK3D_method_set_end_bone_direction)\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection)\ ) |
+
+
+ | `void` |
+ [set_end_bone_length](#TwoBoneIK3D_method_set_end_bone_length)\ (\ index\: [int](int.md), length\: [float](float.md)\ ) |
+
+
+ | `void` |
+ [set_end_bone_name](#TwoBoneIK3D_method_set_end_bone_name)\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) |
+
+
+ | `void` |
+ [set_extend_end_bone](#TwoBoneIK3D_method_set_extend_end_bone)\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) |
+
+
+ | `void` |
+ [set_middle_bone](#TwoBoneIK3D_method_set_middle_bone)\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) |
+
+
+ | `void` |
+ [set_middle_bone_name](#TwoBoneIK3D_method_set_middle_bone_name)\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) |
+
+
+ | `void` |
+ [set_pole_direction](#TwoBoneIK3D_method_set_pole_direction)\ (\ index\: [int](int.md), direction\: [SecondaryDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_SecondaryDirection)\ ) |
+
+
+ | `void` |
+ [set_pole_direction_vector](#TwoBoneIK3D_method_set_pole_direction_vector)\ (\ index\: [int](int.md), vector\: [Vector3](Vector3.md)\ ) |
+
+
+ | `void` |
+ [set_pole_node](#TwoBoneIK3D_method_set_pole_node)\ (\ index\: [int](int.md), pole_node\: [NodePath](NodePath.md)\ ) |
+
+
+ | `void` |
+ [set_root_bone](#TwoBoneIK3D_method_set_root_bone)\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) |
+
+
+ | `void` |
+ [set_root_bone_name](#TwoBoneIK3D_method_set_root_bone_name)\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) |
+
+
+ | `void` |
+ [set_target_node](#TwoBoneIK3D_method_set_target_node)\ (\ index\: [int](int.md), target_node\: [NodePath](NodePath.md)\ ) |
+
+
+ | `void` |
+ [set_use_virtual_end](#TwoBoneIK3D_method_set_use_virtual_end)\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) |
+
+
+
+
+
+
+
+
+## Property Descriptions
+
+
+
+
+
+[int](int.md) **setting_count** = `0` [🔗](#TwoBoneIK3D_property_setting_count)
+
+
+
+- `void` **set_setting_count**\ (\ value\: [int](int.md)\ )
+- [int](int.md) **get_setting_count**\ (\ )
+
+The number of settings.
+
+
+
+
+
+## Method Descriptions
+
+
+
+
+
+[int](int.md) **get_end_bone**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_end_bone)
+
+Returns the end bone index.
+
+
+
+
+
+
+
+[BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection) **get_end_bone_direction**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_end_bone_direction)
+
+Returns the end bone's tail direction when [is_end_bone_extended()](TwoBoneIK3D.md#TwoBoneIK3D_method_is_end_bone_extended) is ``true``.
+
+
+
+
+
+
+
+[float](float.md) **get_end_bone_length**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_end_bone_length)
+
+Returns the end bone tail length of the bone chain when [is_end_bone_extended()](TwoBoneIK3D.md#TwoBoneIK3D_method_is_end_bone_extended) is ``true``.
+
+
+
+
+
+
+
+[String](String.md) **get_end_bone_name**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_end_bone_name)
+
+Returns the end bone name.
+
+
+
+
+
+
+
+[int](int.md) **get_middle_bone**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_middle_bone)
+
+Returns the middle bone index.
+
+
+
+
+
+
+
+[String](String.md) **get_middle_bone_name**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_middle_bone_name)
+
+Returns the middle bone name.
+
+
+
+
+
+
+
+[SecondaryDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_SecondaryDirection) **get_pole_direction**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_pole_direction)
+
+Returns the pole direction.
+
+
+
+
+
+
+
+[Vector3](Vector3.md) **get_pole_direction_vector**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_pole_direction_vector)
+
+Returns the pole direction vector.
+
+If [get_pole_direction()](TwoBoneIK3D.md#TwoBoneIK3D_method_get_pole_direction) is [SkeletonModifier3D.SECONDARY_DIRECTION_NONE](SkeletonModifier3D.md#SkeletonModifier3D_constant_SECONDARY_DIRECTION_NONE), this method returns ``Vector3(0, 0, 0)``.
+
+
+
+
+
+
+
+[NodePath](NodePath.md) **get_pole_node**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_pole_node)
+
+Returns the pole target node that constructs a plane which the joints are all on and the pole is trying to direct.
+
+
+
+
+
+
+
+[int](int.md) **get_root_bone**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_root_bone)
+
+Returns the root bone index.
+
+
+
+
+
+
+
+[String](String.md) **get_root_bone_name**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_root_bone_name)
+
+Returns the root bone name.
+
+
+
+
+
+
+
+[NodePath](NodePath.md) **get_target_node**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_get_target_node)
+
+Returns the target node that the end bone is trying to reach.
+
+
+
+
+
+
+
+[bool](bool.md) **is_end_bone_extended**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_is_end_bone_extended)
+
+Returns ``true`` if the end bone is extended to have a tail.
+
+
+
+
+
+
+
+[bool](bool.md) **is_using_virtual_end**\ (\ index\: [int](int.md)\ ) const [🔗](#TwoBoneIK3D_method_is_using_virtual_end)
+
+Returns ``true`` if the end bone is extended from the middle bone as a virtual bone.
+
+
+
+
+
+
+
+`void` **set_end_bone**\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) [🔗](#TwoBoneIK3D_method_set_end_bone)
+
+Sets the end bone index.
+
+
+
+
+
+
+
+`void` **set_end_bone_direction**\ (\ index\: [int](int.md), bone_direction\: [BoneDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_BoneDirection)\ ) [🔗](#TwoBoneIK3D_method_set_end_bone_direction)
+
+Sets the end bone tail direction when [is_end_bone_extended()](TwoBoneIK3D.md#TwoBoneIK3D_method_is_end_bone_extended) is ``true``.
+
+
+
+
+
+
+
+`void` **set_end_bone_length**\ (\ index\: [int](int.md), length\: [float](float.md)\ ) [🔗](#TwoBoneIK3D_method_set_end_bone_length)
+
+Sets the end bone tail length when [is_end_bone_extended()](TwoBoneIK3D.md#TwoBoneIK3D_method_is_end_bone_extended) is ``true``.
+
+
+
+
+
+
+
+`void` **set_end_bone_name**\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) [🔗](#TwoBoneIK3D_method_set_end_bone_name)
+
+Sets the end bone name.
+
+\ **Note:** The end bone must be a child of the middle bone.
+
+
+
+
+
+
+
+`void` **set_extend_end_bone**\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) [🔗](#TwoBoneIK3D_method_set_extend_end_bone)
+
+If `enabled` is ``true``, the end bone is extended to have a tail.
+
+
+
+
+
+
+
+`void` **set_middle_bone**\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) [🔗](#TwoBoneIK3D_method_set_middle_bone)
+
+Sets the middle bone index.
+
+
+
+
+
+
+
+`void` **set_middle_bone_name**\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) [🔗](#TwoBoneIK3D_method_set_middle_bone_name)
+
+Sets the middle bone name.
+
+\ **Note:** The middle bone must be a child of the root bone.
+
+
+
+
+
+
+
+`void` **set_pole_direction**\ (\ index\: [int](int.md), direction\: [SecondaryDirection](SkeletonModifier3D.md#enum_SkeletonModifier3D_SecondaryDirection)\ ) [🔗](#TwoBoneIK3D_method_set_pole_direction)
+
+Sets the pole direction.
+
+The pole is on the middle bone and will direct to the pole target.
+
+The rotation axis is a vector that is orthogonal to this and the forward vector.
+
+\ **Note:** The pole direction and the forward vector shouldn't be colinear to avoid unintended rotation.
+
+
+
+
+
+
+
+`void` **set_pole_direction_vector**\ (\ index\: [int](int.md), vector\: [Vector3](Vector3.md)\ ) [🔗](#TwoBoneIK3D_method_set_pole_direction_vector)
+
+Sets the pole direction vector.
+
+This vector is normalized by an internal process.
+
+If the vector length is ``0``, it is considered synonymous with [SkeletonModifier3D.SECONDARY_DIRECTION_NONE](SkeletonModifier3D.md#SkeletonModifier3D_constant_SECONDARY_DIRECTION_NONE).
+
+
+
+
+
+
+
+`void` **set_pole_node**\ (\ index\: [int](int.md), pole_node\: [NodePath](NodePath.md)\ ) [🔗](#TwoBoneIK3D_method_set_pole_node)
+
+Sets the pole target node that constructs a plane which the joints are all on and the pole is trying to direct.
+
+
+
+
+
+
+
+`void` **set_root_bone**\ (\ index\: [int](int.md), bone\: [int](int.md)\ ) [🔗](#TwoBoneIK3D_method_set_root_bone)
+
+Sets the root bone index.
+
+
+
+
+
+
+
+`void` **set_root_bone_name**\ (\ index\: [int](int.md), bone_name\: [String](String.md)\ ) [🔗](#TwoBoneIK3D_method_set_root_bone_name)
+
+Sets the root bone name.
+
+
+
+
+
+
+
+`void` **set_target_node**\ (\ index\: [int](int.md), target_node\: [NodePath](NodePath.md)\ ) [🔗](#TwoBoneIK3D_method_set_target_node)
+
+Sets the target node that the end bone is trying to reach.
+
+
+
+
+
+
+
+`void` **set_use_virtual_end**\ (\ index\: [int](int.md), enabled\: [bool](bool.md)\ ) [🔗](#TwoBoneIK3D_method_set_use_virtual_end)
+
+If `enabled` is ``true``, the end bone is extended from the middle bone as a virtual bone.
+
diff --git a/docs/Classes/Variant.md b/docs/Classes/Variant.md
index 8f859026..f502bc4d 100644
--- a/docs/Classes/Variant.md
+++ b/docs/Classes/Variant.md
@@ -39,7 +39,7 @@ In computer programming, a Variant class is a class that is designed to store a
// Redot also provides a Variant type that works like a union of all the Variant-compatible types.
Variant fooVar = 2; // fooVar is dynamically an integer (stored as a `long` in the Variant type).
fooVar = "Now fooVar is a string!";
- fooVar = new RefCounted(); // fooVar is a RedotObject.
+ fooVar = new RefCounted(); // fooVar is a GodotObject.
```
@@ -84,7 +84,7 @@ The global [@GlobalScope.typeof()](@GlobalScope.md#@GlobalScope_method_typeof) f
break;
case Variant.Type.Object:
// Note that Objects are their own special category.
- // You can convert a Variant to a RedotObject and use reflection to get its name.
+ // You can convert a Variant to a GodotObject and use reflection to get its name.
GD.Print($"foo is a(n) {foo.AsGodotObject().GetType().Name}");
break;
}
@@ -132,5 +132,5 @@ There are notable differences when using this API with C#. See the C# difference
## Tutorials
-- [Variant class introduction](../Contributing/Development/core_and_modules/variant_class.md)
+- [Variant class introduction](../engine_details/architecture/variant_class.md)
diff --git a/docs/Classes/Vector2.md b/docs/Classes/Vector2.md
index 75d4eaca..f2037d3d 100644
--- a/docs/Classes/Vector2.md
+++ b/docs/Classes/Vector2.md
@@ -231,6 +231,14 @@ See [Vector2i](Vector2i.md) for its integer counterpart.
[Vector2](Vector2.md) |
[minf](#Vector2_method_minf)\ (\ with\: [float](float.md)\ ) const |
+
+ | [Vector2](Vector2.md) |
+ [monotonic_cubic_interpolate](#Vector2_method_monotonic_cubic_interpolate)\ (\ b\: [Vector2](Vector2.md), pre_a\: [Vector2](Vector2.md), post_b\: [Vector2](Vector2.md), weight\: [float](float.md)\ ) const |
+
+
+ | [Vector2](Vector2.md) |
+ [monotonic_cubic_interpolate_in_time](#Vector2_method_monotonic_cubic_interpolate_in_time)\ (\ b\: [Vector2](Vector2.md), pre_a\: [Vector2](Vector2.md), post_b\: [Vector2](Vector2.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const |
+
| [Vector2](Vector2.md) |
[move_toward](#Vector2_method_move_toward)\ (\ to\: [Vector2](Vector2.md), delta\: [float](float.md)\ ) const |
@@ -908,6 +916,28 @@ Returns the component-wise minimum of this and `with`, equivalent to ``Vector2(m
+
+
+
+
+[Vector2](Vector2.md) **monotonic_cubic_interpolate**\ (\ b\: [Vector2](Vector2.md), pre_a\: [Vector2](Vector2.md), post_b\: [Vector2](Vector2.md), weight\: [float](float.md)\ ) const [🔗](#Vector2_method_monotonic_cubic_interpolate)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+
+
+
+
+
+
+[Vector2](Vector2.md) **monotonic_cubic_interpolate_in_time**\ (\ b\: [Vector2](Vector2.md), pre_a\: [Vector2](Vector2.md), post_b\: [Vector2](Vector2.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const [🔗](#Vector2_method_monotonic_cubic_interpolate_in_time)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+It can perform smoother interpolation than [monotonic_cubic_interpolate()](Vector2.md#Vector2_method_monotonic_cubic_interpolate) by the time values.
+
+
+
diff --git a/docs/Classes/Vector3.md b/docs/Classes/Vector3.md
index 99c320f0..9e7040e8 100644
--- a/docs/Classes/Vector3.md
+++ b/docs/Classes/Vector3.md
@@ -224,6 +224,14 @@ See [Vector3i](Vector3i.md) for its integer counterpart.
[Vector3](Vector3.md) |
[minf](#Vector3_method_minf)\ (\ with\: [float](float.md)\ ) const |
+
+ | [Vector3](Vector3.md) |
+ [monotonic_cubic_interpolate](#Vector3_method_monotonic_cubic_interpolate)\ (\ b\: [Vector3](Vector3.md), pre_a\: [Vector3](Vector3.md), post_b\: [Vector3](Vector3.md), weight\: [float](float.md)\ ) const |
+
+
+ | [Vector3](Vector3.md) |
+ [monotonic_cubic_interpolate_in_time](#Vector3_method_monotonic_cubic_interpolate_in_time)\ (\ b\: [Vector3](Vector3.md), pre_a\: [Vector3](Vector3.md), post_b\: [Vector3](Vector3.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const |
+
| [Vector3](Vector3.md) |
[move_toward](#Vector3_method_move_toward)\ (\ to\: [Vector3](Vector3.md), delta\: [float](float.md)\ ) const |
@@ -948,6 +956,28 @@ Returns the component-wise minimum of this and `with`, equivalent to ``Vector3(m
+
+
+
+
+[Vector3](Vector3.md) **monotonic_cubic_interpolate**\ (\ b\: [Vector3](Vector3.md), pre_a\: [Vector3](Vector3.md), post_b\: [Vector3](Vector3.md), weight\: [float](float.md)\ ) const [🔗](#Vector3_method_monotonic_cubic_interpolate)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+
+
+
+
+
+
+[Vector3](Vector3.md) **monotonic_cubic_interpolate_in_time**\ (\ b\: [Vector3](Vector3.md), pre_a\: [Vector3](Vector3.md), post_b\: [Vector3](Vector3.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const [🔗](#Vector3_method_monotonic_cubic_interpolate_in_time)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+It can perform smoother interpolation than [monotonic_cubic_interpolate()](Vector3.md#Vector3_method_monotonic_cubic_interpolate) by the time values.
+
+
+
diff --git a/docs/Classes/Vector4.md b/docs/Classes/Vector4.md
index 43209f78..6ae0b24e 100644
--- a/docs/Classes/Vector4.md
+++ b/docs/Classes/Vector4.md
@@ -189,6 +189,14 @@ See [Vector4i](Vector4i.md) for its integer counterpart.
[Vector4](Vector4.md) |
[minf](#Vector4_method_minf)\ (\ with\: [float](float.md)\ ) const |
+
+ | [Vector4](Vector4.md) |
+ [monotonic_cubic_interpolate](#Vector4_method_monotonic_cubic_interpolate)\ (\ b\: [Vector4](Vector4.md), pre_a\: [Vector4](Vector4.md), post_b\: [Vector4](Vector4.md), weight\: [float](float.md)\ ) const |
+
+
+ | [Vector4](Vector4.md) |
+ [monotonic_cubic_interpolate_in_time](#Vector4_method_monotonic_cubic_interpolate_in_time)\ (\ b\: [Vector4](Vector4.md), pre_a\: [Vector4](Vector4.md), post_b\: [Vector4](Vector4.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const |
+
| [Vector4](Vector4.md) |
[normalized](#Vector4_method_normalized)\ (\ ) const |
@@ -715,6 +723,28 @@ Returns the component-wise minimum of this and `with`, equivalent to ``Vector4(m
+
+
+
+
+[Vector4](Vector4.md) **monotonic_cubic_interpolate**\ (\ b\: [Vector4](Vector4.md), pre_a\: [Vector4](Vector4.md), post_b\: [Vector4](Vector4.md), weight\: [float](float.md)\ ) const [🔗](#Vector4_method_monotonic_cubic_interpolate)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+
+
+
+
+
+
+[Vector4](Vector4.md) **monotonic_cubic_interpolate_in_time**\ (\ b\: [Vector4](Vector4.md), pre_a\: [Vector4](Vector4.md), post_b\: [Vector4](Vector4.md), weight\: [float](float.md), b_t\: [float](float.md), pre_a_t\: [float](float.md), post_b_t\: [float](float.md)\ ) const [🔗](#Vector4_method_monotonic_cubic_interpolate_in_time)
+
+Performs a monotonic cubic interpolation between this vector and `b` using `pre_a` and `post_b` as handles, and returns the result at position `weight`. `weight` is on the range of 0.0 to 1.0, representing the amount of interpolation.
+
+It can perform smoother interpolation than [monotonic_cubic_interpolate()](Vector4.md#Vector4_method_monotonic_cubic_interpolate) by the time values.
+
+
+
diff --git a/docs/Classes/VisualShaderNodeFloatFunc.md b/docs/Classes/VisualShaderNodeFloatFunc.md
index 501bed4e..47aaa023 100644
--- a/docs/Classes/VisualShaderNodeFloatFunc.md
+++ b/docs/Classes/VisualShaderNodeFloatFunc.md
@@ -53,109 +53,109 @@ enum **Function**: [🔗](#enum_VisualShaderNodeFloatFunc_Function)
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_SIN** = `0`
-Returns the sine of the parameter. Translates to ``sin(x)`` in the RedotShader Language.
+Returns the sine of the parameter. Translates to ``sin(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_COS** = `1`
-Returns the cosine of the parameter. Translates to ``cos(x)`` in the RedotShader Language.
+Returns the cosine of the parameter. Translates to ``cos(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_TAN** = `2`
-Returns the tangent of the parameter. Translates to ``tan(x)`` in the RedotShader Language.
+Returns the tangent of the parameter. Translates to ``tan(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ASIN** = `3`
-Returns the arc-sine of the parameter. Translates to ``asin(x)`` in the RedotShader Language.
+Returns the arc-sine of the parameter. Translates to ``asin(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ACOS** = `4`
-Returns the arc-cosine of the parameter. Translates to ``acos(x)`` in the RedotShader Language.
+Returns the arc-cosine of the parameter. Translates to ``acos(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ATAN** = `5`
-Returns the arc-tangent of the parameter. Translates to ``atan(x)`` in the RedotShader Language.
+Returns the arc-tangent of the parameter. Translates to ``atan(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_SINH** = `6`
-Returns the hyperbolic sine of the parameter. Translates to ``sinh(x)`` in the RedotShader Language.
+Returns the hyperbolic sine of the parameter. Translates to ``sinh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_COSH** = `7`
-Returns the hyperbolic cosine of the parameter. Translates to ``cosh(x)`` in the RedotShader Language.
+Returns the hyperbolic cosine of the parameter. Translates to ``cosh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_TANH** = `8`
-Returns the hyperbolic tangent of the parameter. Translates to ``tanh(x)`` in the RedotShader Language.
+Returns the hyperbolic tangent of the parameter. Translates to ``tanh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_LOG** = `9`
-Returns the natural logarithm of the parameter. Translates to ``log(x)`` in the RedotShader Language.
+Returns the natural logarithm of the parameter. Translates to ``log(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_EXP** = `10`
-Returns the natural exponentiation of the parameter. Translates to ``exp(x)`` in the RedotShader Language.
+Returns the natural exponentiation of the parameter. Translates to ``exp(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_SQRT** = `11`
-Returns the square root of the parameter. Translates to ``sqrt(x)`` in the RedotShader Language.
+Returns the square root of the parameter. Translates to ``sqrt(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ABS** = `12`
-Returns the absolute value of the parameter. Translates to ``abs(x)`` in the RedotShader Language.
+Returns the absolute value of the parameter. Translates to ``abs(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_SIGN** = `13`
-Extracts the sign of the parameter. Translates to ``sign(x)`` in the RedotShader Language.
+Extracts the sign of the parameter. Translates to ``sign(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_FLOOR** = `14`
-Finds the nearest integer less than or equal to the parameter. Translates to ``floor(x)`` in the RedotShader Language.
+Finds the nearest integer less than or equal to the parameter. Translates to ``floor(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ROUND** = `15`
-Finds the nearest integer to the parameter. Translates to ``round(x)`` in the RedotShader Language.
+Finds the nearest integer to the parameter. Translates to ``round(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_CEIL** = `16`
-Finds the nearest integer that is greater than or equal to the parameter. Translates to ``ceil(x)`` in the RedotShader Language.
+Finds the nearest integer that is greater than or equal to the parameter. Translates to ``ceil(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_FRACT** = `17`
-Computes the fractional part of the argument. Translates to ``fract(x)`` in the RedotShader Language.
+Computes the fractional part of the argument. Translates to ``fract(x)`` in the GodotShader Language.
@@ -173,49 +173,49 @@ Negates the ``x`` using ``-(x)``.
+Returns the arc-hyperbolic-cosine of the parameter. Translates to ``acosh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ASINH** = `21`
-Returns the arc-hyperbolic-sine of the parameter. Translates to ``asinh(x)`` in the RedotShader Language.
+Returns the arc-hyperbolic-sine of the parameter. Translates to ``asinh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_ATANH** = `22`
-Returns the arc-hyperbolic-tangent of the parameter. Translates to ``atanh(x)`` in the RedotShader Language.
+Returns the arc-hyperbolic-tangent of the parameter. Translates to ``atanh(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_DEGREES** = `23`
-Convert a quantity in radians to degrees. Translates to ``degrees(x)`` in the RedotShader Language.
+Convert a quantity in radians to degrees. Translates to ``degrees(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_EXP2** = `24`
-Returns 2 raised by the power of the parameter. Translates to ``exp2(x)`` in the RedotShader Language.
+Returns 2 raised by the power of the parameter. Translates to ``exp2(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_INVERSE_SQRT** = `25`
-Returns the inverse of the square root of the parameter. Translates to ``inversesqrt(x)`` in the RedotShader Language.
+Returns the inverse of the square root of the parameter. Translates to ``inversesqrt(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_LOG2** = `26`
-Returns the base 2 logarithm of the parameter. Translates to ``log2(x)`` in the RedotShader Language.
+Returns the base 2 logarithm of the parameter. Translates to ``log2(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_RADIANS** = `27`
-Convert a quantity in degrees to radians. Translates to ``radians(x)`` in the RedotShader Language.
+Convert a quantity in degrees to radians. Translates to ``radians(x)`` in the GodotShader Language.
@@ -227,13 +227,13 @@ Finds reciprocal value of dividing 1 by ``x`` (i.e. ``1 / x``).
+Finds the nearest even integer to the parameter. Translates to ``roundEven(x)`` in the GodotShader Language.
[Function](VisualShaderNodeFloatFunc.md#enum_VisualShaderNodeFloatFunc_Function) **FUNC_TRUNC** = `30`
-Returns a value equal to the nearest integer to ``x`` whose absolute value is not larger than the absolute value of ``x``. Translates to ``trunc(x)`` in the RedotShader Language.
+Returns a value equal to the nearest integer to ``x`` whose absolute value is not larger than the absolute value of ``x``. Translates to ``trunc(x)`` in the GodotShader Language.
diff --git a/docs/Classes/VisualShaderNodeIntFunc.md b/docs/Classes/VisualShaderNodeIntFunc.md
index 883fa837..4ad099eb 100644
--- a/docs/Classes/VisualShaderNodeIntFunc.md
+++ b/docs/Classes/VisualShaderNodeIntFunc.md
@@ -53,7 +53,7 @@ enum **Function**: [🔗](#enum_VisualShaderNodeIntFunc_Function)
[Function](VisualShaderNodeIntFunc.md#enum_VisualShaderNodeIntFunc_Function) **FUNC_ABS** = `0`
-Returns the absolute value of the parameter. Translates to ``abs(x)`` in the Redot Shader Language.
+Returns the absolute value of the parameter. Translates to ``abs(x)`` in the Godot Shader Language.
@@ -65,13 +65,13 @@ Negates the ``x`` using ``-(x)``.
+Extracts the sign of the parameter. Translates to ``sign(x)`` in the Godot Shader Language.
[Function](VisualShaderNodeIntFunc.md#enum_VisualShaderNodeIntFunc_Function) **FUNC_BITWISE_NOT** = `3`
-Returns the result of bitwise ``NOT`` operation on the integer. Translates to ``~a`` in the Redot Shader Language.
+Returns the result of bitwise ``NOT`` operation on the integer. Translates to ``~a`` in the Godot Shader Language.
diff --git a/docs/Classes/VisualShaderNodeIntOp.md b/docs/Classes/VisualShaderNodeIntOp.md
index 502b09ce..6d4dc874 100644
--- a/docs/Classes/VisualShaderNodeIntOp.md
+++ b/docs/Classes/VisualShaderNodeIntOp.md
@@ -83,43 +83,43 @@ Calculates the remainder of two numbers using ``a % b``.
+Returns the greater of two numbers. Translates to ``max(a, b)`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_MIN** = `6`
-Returns the lesser of two numbers. Translates to ``max(a, b)`` in the Redot Shader Language.
+Returns the lesser of two numbers. Translates to ``max(a, b)`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_BITWISE_AND** = `7`
-Returns the result of bitwise ``AND`` operation on the integer. Translates to ``a & b`` in the Redot Shader Language.
+Returns the result of bitwise ``AND`` operation on the integer. Translates to ``a & b`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_BITWISE_OR** = `8`
-Returns the result of bitwise ``OR`` operation for two integers. Translates to ``a | b`` in the Redot Shader Language.
+Returns the result of bitwise ``OR`` operation for two integers. Translates to ``a | b`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_BITWISE_XOR** = `9`
-Returns the result of bitwise ``XOR`` operation for two integers. Translates to ``a ^ b`` in the Redot Shader Language.
+Returns the result of bitwise ``XOR`` operation for two integers. Translates to ``a ^ b`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_BITWISE_LEFT_SHIFT** = `10`
-Returns the result of bitwise left shift operation on the integer. Translates to ``a << b`` in the Redot Shader Language.
+Returns the result of bitwise left shift operation on the integer. Translates to ``a << b`` in the Godot Shader Language.
[Operator](VisualShaderNodeIntOp.md#enum_VisualShaderNodeIntOp_Operator) **OP_BITWISE_RIGHT_SHIFT** = `11`
-Returns the result of bitwise right shift operation on the integer. Translates to ``a >> b`` in the Redot Shader Language.
+Returns the result of bitwise right shift operation on the integer. Translates to ``a >> b`` in the Godot Shader Language.
diff --git a/docs/Classes/VisualShaderNodeUIntFunc.md b/docs/Classes/VisualShaderNodeUIntFunc.md
index ead8e1fe..8e977ea4 100644
--- a/docs/Classes/VisualShaderNodeUIntFunc.md
+++ b/docs/Classes/VisualShaderNodeUIntFunc.md
@@ -59,7 +59,7 @@ Negates the ``x`` using ``-(x)``.
+Returns the result of bitwise ``NOT`` operation on the integer. Translates to ``~a`` in the Godot Shader Language.
diff --git a/docs/Classes/VisualShaderNodeUIntOp.md b/docs/Classes/VisualShaderNodeUIntOp.md
index cc466968..c4e56b67 100644
--- a/docs/Classes/VisualShaderNodeUIntOp.md
+++ b/docs/Classes/VisualShaderNodeUIntOp.md
@@ -83,43 +83,43 @@ Calculates the remainder of two numbers using ``a % b``.
+Returns the greater of two numbers. Translates to ``max(a, b)`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_MIN** = `6`
-Returns the lesser of two numbers. Translates to ``max(a, b)`` in the Redot Shader Language.
+Returns the lesser of two numbers. Translates to ``max(a, b)`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_BITWISE_AND** = `7`
-Returns the result of bitwise ``AND`` operation on the integer. Translates to ``a & b`` in the Redot Shader Language.
+Returns the result of bitwise ``AND`` operation on the integer. Translates to ``a & b`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_BITWISE_OR** = `8`
-Returns the result of bitwise ``OR`` operation for two integers. Translates to ``a | b`` in the Redot Shader Language.
+Returns the result of bitwise ``OR`` operation for two integers. Translates to ``a | b`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_BITWISE_XOR** = `9`
-Returns the result of bitwise ``XOR`` operation for two integers. Translates to ``a ^ b`` in the Redot Shader Language.
+Returns the result of bitwise ``XOR`` operation for two integers. Translates to ``a ^ b`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_BITWISE_LEFT_SHIFT** = `10`
-Returns the result of bitwise left shift operation on the integer. Translates to ``a << b`` in the Redot Shader Language.
+Returns the result of bitwise left shift operation on the integer. Translates to ``a << b`` in the Godot Shader Language.
[Operator](VisualShaderNodeUIntOp.md#enum_VisualShaderNodeUIntOp_Operator) **OP_BITWISE_RIGHT_SHIFT** = `11`
-Returns the result of bitwise right shift operation on the integer. Translates to ``a >> b`` in the Redot Shader Language.
+Returns the result of bitwise right shift operation on the integer. Translates to ``a >> b`` in the Godot Shader Language.
diff --git a/docs/Classes/WebRTCDataChannel.md b/docs/Classes/WebRTCDataChannel.md
index 33083d57..f0f9132c 100644
--- a/docs/Classes/WebRTCDataChannel.md
+++ b/docs/Classes/WebRTCDataChannel.md
@@ -111,13 +111,13 @@ enum **WriteMode**: [🔗](#enum_WebRTCDataChannel_WriteMode)
[WriteMode](WebRTCDataChannel.md#enum_WebRTCDataChannel_WriteMode) **WRITE_MODE_TEXT** = `0`
-Tells the channel to send data over this channel as text. An external peer (non-Redot) would receive this as a string.
+Tells the channel to send data over this channel as text. An external peer (non-Godot) would receive this as a string.
[WriteMode](WebRTCDataChannel.md#enum_WebRTCDataChannel_WriteMode) **WRITE_MODE_BINARY** = `1`
-Tells the channel to send data over this channel as binary. An external peer (non-Redot) would receive this as array buffer or blob.
+Tells the channel to send data over this channel as binary. An external peer (non-Godot) would receive this as array buffer or blob.
diff --git a/docs/Classes/WebXRInterface.md b/docs/Classes/WebXRInterface.md
index d895dbb6..ebbdeab4 100644
--- a/docs/Classes/WebXRInterface.md
+++ b/docs/Classes/WebXRInterface.md
@@ -120,7 +120,7 @@ You can use both methods to allow your game or app to support a wider or narrowe
## Tutorials
-- [How to make a VR game for WebXR with Redot 4](https://www.snopekgames.com/tutorial/2023/how-make-vr-game-webxr-Redot-4)
+- [How to make a VR game for WebXR with Redot 4](https://www.snopekgames.com/tutorial/2023/how-make-vr-game-webxr-godot-4)
diff --git a/docs/Classes/index.md b/docs/Classes/index.md
index b5969d65..8206670e 100644
--- a/docs/Classes/index.md
+++ b/docs/Classes/index.md
@@ -38,6 +38,7 @@
- [Bone2D](Bone2D.md)
- [BoneAttachment3D](BoneAttachment3D.md)
- [BoneConstraint3D](BoneConstraint3D.md)
+- [BoneTwistDisperser3D](BoneTwistDisperser3D.md)
- [BoxContainer](BoxContainer.md)
- [Button](Button.md)
- [Camera2D](Camera2D.md)
@@ -46,7 +47,9 @@
- [CanvasItem](CanvasItem.md)
- [CanvasLayer](CanvasLayer.md)
- [CanvasModulate](CanvasModulate.md)
+- [CCDIK3D](CCDIK3D.md)
- [CenterContainer](CenterContainer.md)
+- [ChainIK3D](ChainIK3D.md)
- [CharacterBody2D](CharacterBody2D.md)
- [CharacterBody3D](CharacterBody3D.md)
- [CheckBox](CheckBox.md)
@@ -93,6 +96,7 @@
- [EditorScriptPicker](EditorScriptPicker.md)
- [EditorSpinSlider](EditorSpinSlider.md)
- [EditorToaster](EditorToaster.md)
+- [FABRIK3D](FABRIK3D.md)
- [FileDialog](FileDialog.md)
- [FileSystemDock](FileSystemDock.md)
- [FlowContainer](FlowContainer.md)
@@ -127,9 +131,12 @@
- [HSlider](HSlider.md)
- [HSplitContainer](HSplitContainer.md)
- [HTTPRequest](HTTPRequest.md)
+- [IKModifier3D](IKModifier3D.md)
- [ImporterMeshInstance3D](ImporterMeshInstance3D.md)
- [InstancePlaceholder](InstancePlaceholder.md)
- [ItemList](ItemList.md)
+- [IterateIK3D](IterateIK3D.md)
+- [JacobianIK3D](JacobianIK3D.md)
- [Joint2D](Joint2D.md)
- [Joint3D](Joint3D.md)
- [Label](Label.md)
@@ -139,6 +146,7 @@
- [LightmapGI](LightmapGI.md)
- [LightmapProbe](LightmapProbe.md)
- [LightOccluder2D](LightOccluder2D.md)
+- [LimitAngularVelocityModifier3D](LimitAngularVelocityModifier3D.md)
- [Line2D](Line2D.md)
- [LineEdit](LineEdit.md)
- [LinkButton](LinkButton.md)
@@ -233,6 +241,7 @@
- [SliderJoint3D](SliderJoint3D.md)
- [SoftBody3D](SoftBody3D.md)
- [SpinBox](SpinBox.md)
+- [SplineIK3D](SplineIK3D.md)
- [SplitContainer](SplitContainer.md)
- [SpotLight3D](SpotLight3D.md)
- [SpringArm3D](SpringArm3D.md)
@@ -260,6 +269,7 @@
- [Timer](Timer.md)
- [TouchScreenButton](TouchScreenButton.md)
- [Tree](Tree.md)
+- [TwoBoneIK3D](TwoBoneIK3D.md)
- [VBoxContainer](VBoxContainer.md)
- [VehicleBody3D](VehicleBody3D.md)
- [VehicleWheel3D](VehicleWheel3D.md)
@@ -462,6 +472,8 @@
- [InputEventScreenTouch](InputEventScreenTouch.md)
- [InputEventShortcut](InputEventShortcut.md)
- [InputEventWithModifiers](InputEventWithModifiers.md)
+- [JointLimitation3D](JointLimitation3D.md)
+- [JointLimitationCone3D](JointLimitationCone3D.md)
- [JSON](JSON.md)
- [LabelSettings](LabelSettings.md)
- [LightmapGIData](LightmapGIData.md)
@@ -947,8 +959,8 @@
- [ScriptLanguageExtension](ScriptLanguageExtension.md)
- [Semaphore](Semaphore.md)
- [ShaderIncludeDB](ShaderIncludeDB.md)
-- [SignalSmith](SignalSmith.md)
- [SkinReference](SkinReference.md)
+- [SoundSmith](SoundSmith.md)
- [StreamPeer](StreamPeer.md)
- [StreamPeerBuffer](StreamPeerBuffer.md)
- [StreamPeerExtension](StreamPeerExtension.md)