Browse Source

classref: Sync with latest 4.0-dev

Rémi Verschelde 3 years ago
parent
commit
904e9d6cf7

+ 10 - 0
classes/[email protected]

@@ -211,6 +211,8 @@ Methods
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`float<class_float>`                       | :ref:`randf_range<class_@GlobalScope_method_randf_range>` **(** :ref:`float<class_float>` from, :ref:`float<class_float>` to **)**                                                                                                        |
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                       | :ref:`randfn<class_@GlobalScope_method_randfn>` **(** :ref:`float<class_float>` mean, :ref:`float<class_float>` deviation **)**                                                                                                           |
++-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`randi<class_@GlobalScope_method_randi>` **(** **)**                                                                                                                                                                                 |
 +-------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                           | :ref:`randi_range<class_@GlobalScope_method_randi_range>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` to **)**                                                                                                                |
@@ -3673,6 +3675,14 @@ Returns a random floating point value on the interval between ``from`` and ``to`
 
 ----
 
+.. _class_@GlobalScope_method_randfn:
+
+- :ref:`float<class_float>` **randfn** **(** :ref:`float<class_float>` mean, :ref:`float<class_float>` deviation **)**
+
+Returns a normally-distributed pseudo-random floating point value using Box-Muller transform with the specified ``mean`` and a standard ``deviation``. This is also called Gaussian distribution.
+
+----
+
 .. _class_@GlobalScope_method_randi:
 
 - :ref:`int<class_int>` **randi** **(** **)**

+ 10 - 0
classes/class_aabb.rst

@@ -402,12 +402,18 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`AABB<class_AABB>` right **)**
 
+Returns ``true`` if the vectors are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_AABB_operator_mul_AABB:
 
 - :ref:`AABB<class_AABB>` **operator *** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
+Inversely transforms (multiplies) the ``AABB`` by the given :ref:`Transform3D<class_Transform3D>` transformation matrix.
+
 ----
 
 .. _class_AABB_operator_eq_bool:
@@ -418,6 +424,10 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`AABB<class_AABB>` right **)**
 
+Returns ``true`` if the AABBs are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_AABB_method_is_equal_approx>` instead, which is more reliable.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 164 - 130
classes/class_animation.rst

@@ -64,133 +64,137 @@ Properties
 Methods
 -------
 
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`add_track<class_Animation_method_add_track>` **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                        | :ref:`animation_track_get_key_animation<class_Animation_method_animation_track_get_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`animation_track_insert_key<class_Animation_method_animation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`animation_track_set_key_animation<class_Animation_method_animation_track_set_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_end_offset<class_Animation_method_audio_track_get_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_start_offset<class_Animation_method_audio_track_get_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                        |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Resource<class_Resource>`                            | :ref:`audio_track_get_key_stream<class_Animation_method_audio_track_get_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`audio_track_insert_key<class_Animation_method_audio_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_end_offset<class_Animation_method_audio_track_set_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                                  |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_start_offset<class_Animation_method_audio_track_set_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`audio_track_set_key_stream<class_Animation_method_audio_track_set_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_in_handle<class_Animation_method_bezier_track_get_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_out_handle<class_Animation_method_bezier_track_get_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bezier_track_get_key_value<class_Animation_method_bezier_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`bezier_track_insert_key<class_Animation_method_bezier_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)** |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`bezier_track_interpolate<class_Animation_method_bezier_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_in_handle<class_Animation_method_bezier_track_set_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle **)**                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_out_handle<class_Animation_method_bezier_track_set_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle **)**                                                                                        |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`bezier_track_set_key_value<class_Animation_method_bezier_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`blend_shape_track_insert_key<class_Animation_method_blend_shape_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`compress<class_Animation_method_compress>` **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`copy_track<class_Animation_method_copy_track>` **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`find_track<class_Animation_method_find_track>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|                                                                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`method_track_get_key_indices<class_Animation_method_method_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`StringName<class_StringName>`                        | :ref:`method_track_get_name<class_Animation_method_method_track_get_name>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Array<class_Array>`                                  | :ref:`method_track_get_params<class_Animation_method_method_track_get_params>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`position_track_insert_key<class_Animation_method_position_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`rotation_track_insert_key<class_Animation_method_rotation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`scale_track_insert_key<class_Animation_method_scale_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**                                                                                                              |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`track_find_key<class_Animation_method_track_find_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_get_interpolation_loop_wrap<class_Animation_method_track_get_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`InterpolationType<enum_Animation_InterpolationType>` | :ref:`track_get_interpolation_type<class_Animation_method_track_get_interpolation_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`int<class_int>`                                      | :ref:`track_get_key_count<class_Animation_method_track_get_key_count>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`track_get_key_time<class_Animation_method_track_get_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`float<class_float>`                                  | :ref:`track_get_key_transition<class_Animation_method_track_get_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                        |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                              | :ref:`track_get_key_value<class_Animation_method_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                  |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`NodePath<class_NodePath>`                            | :ref:`track_get_path<class_Animation_method_track_get_path>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`TrackType<enum_Animation_TrackType>`                 | :ref:`track_get_type<class_Animation_method_track_get_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_insert_key<class_Animation_method_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**                                                                                    |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_enabled<class_Animation_method_track_is_enabled>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`bool<class_bool>`                                    | :ref:`track_is_imported<class_Animation_method_track_is_imported>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_down<class_Animation_method_track_move_down>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_to<class_Animation_method_track_move_to>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**                                                                                                                                                                       |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_move_up<class_Animation_method_track_move_up>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_remove_key<class_Animation_method_track_remove_key>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**                                                                                                                                                                |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_remove_key_at_time<class_Animation_method_track_remove_key_at_time>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**                                                                                                                                               |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_enabled<class_Animation_method_track_set_enabled>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_imported<class_Animation_method_track_set_imported>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**                                                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_interpolation_loop_wrap<class_Animation_method_track_set_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_interpolation_type<class_Animation_method_track_set_interpolation_type>` **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_time<class_Animation_method_track_set_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**                                                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_transition<class_Animation_method_track_set_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**                                                                                                          |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_key_value<class_Animation_method_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**                                                                                                                         |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_set_path<class_Animation_method_track_set_path>` **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**                                                                                                                                                             |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`track_swap<class_Animation_method_track_swap>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**                                                                                                                                                                           |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`value_track_get_key_indices<class_Animation_method_value_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                            |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`UpdateMode<enum_Animation_UpdateMode>`               | :ref:`value_track_get_update_mode<class_Animation_method_value_track_get_update_mode>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                 |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Variant<class_Variant>`                              | :ref:`value_track_interpolate<class_Animation_method_value_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                     |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| void                                                       | :ref:`value_track_set_update_mode<class_Animation_method_value_track_set_update_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**                                                                                                                      |
-+------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`add_track<class_Animation_method_add_track>` **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**                                                                                                                                                                                                                   |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                        | :ref:`animation_track_get_key_animation<class_Animation_method_animation_track_get_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                  |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`animation_track_insert_key<class_Animation_method_animation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`StringName<class_StringName>` animation **)**                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`animation_track_set_key_animation<class_Animation_method_animation_track_set_key_animation>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`StringName<class_StringName>` animation **)**                                                                                                                                           |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_end_offset<class_Animation_method_audio_track_get_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`audio_track_get_key_start_offset<class_Animation_method_audio_track_get_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                    |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Resource<class_Resource>`                            | :ref:`audio_track_get_key_stream<class_Animation_method_audio_track_get_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`audio_track_insert_key<class_Animation_method_audio_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**                                                                                     |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`audio_track_set_key_end_offset<class_Animation_method_audio_track_set_key_end_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                                                                                              |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`audio_track_set_key_start_offset<class_Animation_method_audio_track_set_key_start_offset>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**                                                                                                                                                          |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`audio_track_set_key_stream<class_Animation_method_audio_track_set_key_stream>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**                                                                                                                                                                |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`bezier_track_get_key_handle_mode<class_Animation_method_bezier_track_get_key_handle_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                    |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_in_handle<class_Animation_method_bezier_track_get_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Vector2<class_Vector2>`                              | :ref:`bezier_track_get_key_out_handle<class_Animation_method_bezier_track_get_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                      |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`bezier_track_get_key_value<class_Animation_method_bezier_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`bezier_track_insert_key<class_Animation_method_bezier_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0), :ref:`HandleMode<enum_Animation_HandleMode>` handle_mode=1 **)** |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`bezier_track_interpolate<class_Animation_method_bezier_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)** |const|                                                                                                                                                                                                   |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`bezier_track_set_key_handle_mode<class_Animation_method_bezier_track_set_key_handle_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`HandleMode<enum_Animation_HandleMode>` key_handle_mode, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                                                                     |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`bezier_track_set_key_in_handle<class_Animation_method_bezier_track_set_key_in_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                                                                                              |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`bezier_track_set_key_out_handle<class_Animation_method_bezier_track_set_key_out_handle>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**                                                                                           |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`bezier_track_set_key_value<class_Animation_method_bezier_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**                                                                                                                                                                       |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`blend_shape_track_insert_key<class_Animation_method_blend_shape_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` amount **)**                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`clear<class_Animation_method_clear>` **(** **)**                                                                                                                                                                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`compress<class_Animation_method_compress>` **(** :ref:`int<class_int>` page_size=8192, :ref:`int<class_int>` fps=120, :ref:`float<class_float>` split_tolerance=4.0 **)**                                                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`copy_track<class_Animation_method_copy_track>` **(** :ref:`int<class_int>` track_idx, :ref:`Animation<class_Animation>` to_animation **)**                                                                                                                                                                                                                       |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`find_track<class_Animation_method_find_track>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`TrackType<enum_Animation_TrackType>` type **)** |const|                                                                                                                                                                                                         |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`get_track_count<class_Animation_method_get_track_count>` **(** **)** |const|                                                                                                                                                                                                                                                                                     |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`method_track_get_key_indices<class_Animation_method_method_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                                                                                      |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`StringName<class_StringName>`                        | :ref:`method_track_get_name<class_Animation_method_method_track_get_name>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                          |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Array<class_Array>`                                  | :ref:`method_track_get_params<class_Animation_method_method_track_get_params>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                      |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`position_track_insert_key<class_Animation_method_position_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` position **)**                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`remove_track<class_Animation_method_remove_track>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                                                                                   |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`rotation_track_insert_key<class_Animation_method_rotation_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Quaternion<class_Quaternion>` rotation **)**                                                                                                                                                           |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`scale_track_insert_key<class_Animation_method_scale_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` scale **)**                                                                                                                                                                          |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`track_find_key<class_Animation_method_track_find_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** |const|                                                                                                                                                                                  |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                    | :ref:`track_get_interpolation_loop_wrap<class_Animation_method_track_get_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`InterpolationType<enum_Animation_InterpolationType>` | :ref:`track_get_interpolation_type<class_Animation_method_track_get_interpolation_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                           |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                                      | :ref:`track_get_key_count<class_Animation_method_track_get_key_count>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                             |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`track_get_key_time<class_Animation_method_track_get_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                                |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`float<class_float>`                                  | :ref:`track_get_key_transition<class_Animation_method_track_get_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                    |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                              | :ref:`track_get_key_value<class_Animation_method_track_get_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|                                                                                                                                                                                                              |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`NodePath<class_NodePath>`                            | :ref:`track_get_path<class_Animation_method_track_get_path>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                                       |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`TrackType<enum_Animation_TrackType>`                 | :ref:`track_get_type<class_Animation_method_track_get_type>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                                       |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_insert_key<class_Animation_method_track_insert_key>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**                                                                                                                                                |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                    | :ref:`track_is_compressed<class_Animation_method_track_is_compressed>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                             |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                    | :ref:`track_is_enabled<class_Animation_method_track_is_enabled>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                                   |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`bool<class_bool>`                                    | :ref:`track_is_imported<class_Animation_method_track_is_imported>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_move_down<class_Animation_method_track_move_down>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                                                                             |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_move_to<class_Animation_method_track_move_to>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` to_idx **)**                                                                                                                                                                                                                                   |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_move_up<class_Animation_method_track_move_up>` **(** :ref:`int<class_int>` track_idx **)**                                                                                                                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_remove_key<class_Animation_method_track_remove_key>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)**                                                                                                                                                                                                                            |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_remove_key_at_time<class_Animation_method_track_remove_key_at_time>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time **)**                                                                                                                                                                                                           |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_enabled<class_Animation_method_track_set_enabled>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` enabled **)**                                                                                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_imported<class_Animation_method_track_set_imported>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` imported **)**                                                                                                                                                                                                                     |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_interpolation_loop_wrap<class_Animation_method_track_set_interpolation_loop_wrap>` **(** :ref:`int<class_int>` track_idx, :ref:`bool<class_bool>` interpolation **)**                                                                                                                                                                                  |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_interpolation_type<class_Animation_method_track_set_interpolation_type>` **(** :ref:`int<class_int>` track_idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**                                                                                                                                                         |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_key_time<class_Animation_method_track_set_key_time>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` time **)**                                                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_key_transition<class_Animation_method_track_set_key_transition>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**                                                                                                                                                                      |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_key_value<class_Animation_method_track_set_key_value>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**                                                                                                                                                                                     |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_set_path<class_Animation_method_track_set_path>` **(** :ref:`int<class_int>` track_idx, :ref:`NodePath<class_NodePath>` path **)**                                                                                                                                                                                                                         |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`track_swap<class_Animation_method_track_swap>` **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` with_idx **)**                                                                                                                                                                                                                                       |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`PackedInt32Array<class_PackedInt32Array>`            | :ref:`value_track_get_key_indices<class_Animation_method_value_track_get_key_indices>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** |const|                                                                                                                                                        |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`UpdateMode<enum_Animation_UpdateMode>`               | :ref:`value_track_get_update_mode<class_Animation_method_value_track_get_update_mode>` **(** :ref:`int<class_int>` track_idx **)** |const|                                                                                                                                                                                                                             |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Variant<class_Variant>`                              | :ref:`value_track_interpolate<class_Animation_method_value_track_interpolate>` **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time_sec **)** |const|                                                                                                                                                                                                 |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| void                                                       | :ref:`value_track_set_update_mode<class_Animation_method_value_track_set_update_mode>` **(** :ref:`int<class_int>` track_idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**                                                                                                                                                                                  |
++------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Signals
 -------
@@ -302,6 +306,20 @@ enum **LoopMode**:
 
 - **LOOP_PINGPONG** = **2** --- Repeats playback and reverse playback at both ends of the animation.
 
+----
+
+.. _enum_Animation_HandleMode:
+
+.. _class_Animation_constant_HANDLE_MODE_FREE:
+
+.. _class_Animation_constant_HANDLE_MODE_BALANCED:
+
+enum **HandleMode**:
+
+- **HANDLE_MODE_FREE** = **0** --- Assigning the free handle mode to a Bezier Track's keyframe allows you to edit the keyframe's left and right handles independently from one another.
+
+- **HANDLE_MODE_BALANCED** = **1** --- Assigning the balanced handle mode to a Bezier Track's keyframe makes it so the two handles of the keyframe always stay aligned when changing either the keyframe's left or right handle.
+
 Property Descriptions
 ---------------------
 
@@ -450,6 +468,14 @@ Sets the stream of the key identified by ``key_idx`` to value ``stream``. The ``
 
 ----
 
+.. _class_Animation_method_bezier_track_get_key_handle_mode:
+
+- :ref:`int<class_int>` **bezier_track_get_key_handle_mode** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
+
+Returns the handle mode of the key identified by ``index``. See :ref:`HandleMode<enum_Animation_HandleMode>` for possible values. The ``track_idx`` must be the index of a Bezier Track.
+
+----
+
 .. _class_Animation_method_bezier_track_get_key_in_handle:
 
 - :ref:`Vector2<class_Vector2>` **bezier_track_get_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx **)** |const|
@@ -476,7 +502,7 @@ Returns the value of the key identified by ``key_idx``. The ``track_idx`` must b
 
 .. _class_Animation_method_bezier_track_insert_key:
 
-- :ref:`int<class_int>` **bezier_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0) **)**
+- :ref:`int<class_int>` **bezier_track_insert_key** **(** :ref:`int<class_int>` track_idx, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2(0, 0), :ref:`Vector2<class_Vector2>` out_handle=Vector2(0, 0), :ref:`HandleMode<enum_Animation_HandleMode>` handle_mode=1 **)**
 
 Inserts a Bezier Track key at the given ``time`` in seconds. The ``track_idx`` must be the index of a Bezier Track.
 
@@ -492,9 +518,17 @@ Returns the interpolated value at the given ``time`` (in seconds). The ``track_i
 
 ----
 
+.. _class_Animation_method_bezier_track_set_key_handle_mode:
+
+- void **bezier_track_set_key_handle_mode** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`HandleMode<enum_Animation_HandleMode>` key_handle_mode, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
+
+Changes the handle mode of the keyframe at the given ``index``. See :ref:`HandleMode<enum_Animation_HandleMode>` for possible values. The ``track_idx`` must be the index of a Bezier Track.
+
+----
+
 .. _class_Animation_method_bezier_track_set_key_in_handle:
 
-- void **bezier_track_set_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle **)**
+- void **bezier_track_set_key_in_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
 
 Sets the in handle of the key identified by ``key_idx`` to value ``in_handle``. The ``track_idx`` must be the index of a Bezier Track.
 
@@ -502,7 +536,7 @@ Sets the in handle of the key identified by ``key_idx`` to value ``in_handle``.
 
 .. _class_Animation_method_bezier_track_set_key_out_handle:
 
-- void **bezier_track_set_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle **)**
+- void **bezier_track_set_key_out_handle** **(** :ref:`int<class_int>` track_idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle, :ref:`float<class_float>` balanced_value_time_ratio=1.0 **)**
 
 Sets the out handle of the key identified by ``key_idx`` to value ``out_handle``. The ``track_idx`` must be the index of a Bezier Track.
 

+ 14 - 0
classes/class_basis.rst

@@ -404,16 +404,24 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Basis<class_Basis>` right **)**
 
+Returns ``true`` if the ``Basis`` matrices are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Basis_operator_mul_Basis:
 
 - :ref:`Basis<class_Basis>` **operator *** **(** :ref:`Basis<class_Basis>` right **)**
 
+Composes these two basis matrices by multiplying them together. This has the effect of transforming the second basis (the child) by the first basis (the parent).
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Transforms (multiplies) the :ref:`Vector3<class_Vector3>` by the given ``Basis`` matrix.
+
 ----
 
 - :ref:`Basis<class_Basis>` **operator *** **(** :ref:`float<class_float>` right **)**
@@ -436,12 +444,18 @@ This operator multiplies all components of the ``Basis``, which scales it unifor
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Basis<class_Basis>` right **)**
 
+Returns ``true`` if the ``Basis`` matrices are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Basis_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Basis_operator_idx_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access basis components using their index. ``b[0]`` is equivalent to ``b.x``, ``b[1]`` is equivalent to ``b.y``, and ``b[2]`` is equivalent to ``b.z``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 2 - 0
classes/class_button.rst

@@ -247,6 +247,8 @@ Flat buttons don't display decoration.
 
 Button's icon, if text is present the icon will be placed before the text.
 
+To edit margin and spacing of the icon, use :ref:`hseparation<class_Button_theme_constant_hseparation>` theme property and ``content_margin_*`` properties of the used :ref:`StyleBox<class_StyleBox>`\ es.
+
 ----
 
 .. _class_Button_property_icon_align:

+ 30 - 0
classes/class_color.rst

@@ -1366,46 +1366,66 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Color<class_Color>` right **)**
 
+Returns ``true`` if the colors are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Color_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Color_operator_mul_Color:
 
 - :ref:`Color<class_Color>` **operator *** **(** :ref:`Color<class_Color>` right **)**
 
+Multiplies each component of the ``Color`` by the components of the given ``Color``.
+
 ----
 
 - :ref:`Color<class_Color>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Color`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Color<class_Color>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Color`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Color_operator_sum_Color:
 
 - :ref:`Color<class_Color>` **operator +** **(** :ref:`Color<class_Color>` right **)**
 
+Adds each component of the ``Color`` with the components of the given ``Color``.
+
 ----
 
 .. _class_Color_operator_dif_Color:
 
 - :ref:`Color<class_Color>` **operator -** **(** :ref:`Color<class_Color>` right **)**
 
+Subtracts each component of the ``Color`` by the components of the given ``Color``.
+
 ----
 
 .. _class_Color_operator_div_Color:
 
 - :ref:`Color<class_Color>` **operator /** **(** :ref:`Color<class_Color>` right **)**
 
+Divides each component of the ``Color`` by the components of the given ``Color``.
+
 ----
 
 - :ref:`Color<class_Color>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Color`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Color<class_Color>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Color`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Color_operator_eq_bool:
@@ -1416,24 +1436,34 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Color<class_Color>` right **)**
 
+Returns ``true`` if the colors are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Color_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Color_operator_idx_float:
 
 - :ref:`float<class_float>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access color components using their index. ``c[0]`` is equivalent to ``c.r``, ``c[1]`` is equivalent to ``c.g``, ``c[2]`` is equivalent to ``c.b``, and ``c[3]`` is equivalent to ``c.a``.
+
 ----
 
 .. _class_Color_operator_unplus_Color:
 
 - :ref:`Color<class_Color>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Color_operator_unminus_Color:
 
 - :ref:`Color<class_Color>` **operator unary-** **(** **)**
 
+Inverts the given color. This is equivalent to ``Color.WHITE - c`` or ``Color(1 - c.r, 1 - c.g, 1 - c.b, 1 - c.a)``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 52 - 0
classes/class_editorpaths.rst

@@ -11,7 +11,21 @@ EditorPaths
 
 **Inherits:** :ref:`Object<class_Object>`
 
+Editor-only singleton that returns paths to various OS-specific data folders and files.
 
+Description
+-----------
+
+This editor-only singleton returns OS-specific paths to various data folders and files. It can be used in editor plugins to ensure files are saved in the correct location on each operating system.
+
+**Note:** This singleton is not accessible in exported projects. Attempting to access it in an exported project will result in a script error as the singleton won't be declared. To prevent script errors in exported projects, use :ref:`Engine.has_singleton<class_Engine_method_has_singleton>` to check whether the singleton is available before using it.
+
+**Note:** Godot complies with the `XDG Base Directory Specification <https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html>`__ on *all* platforms. You can override environment variables following the specification to change the editor and project data paths.
+
+Tutorials
+---------
+
+- `File paths in Godot projects <https://docs.godotengine.org/en/latest/tutorials/io/data_paths.html>`__
 
 Methods
 -------
@@ -35,30 +49,68 @@ Method Descriptions
 
 - :ref:`String<class_String>` **get_cache_dir** **(** **)** |const|
 
+Returns the absolute path to the user's cache folder. This folder should be used for temporary data that can be removed safely whenever the editor is closed (such as generated resource thumbnails).
+
+**Default paths per platform:**
+
+::
+
+    - Windows: %LOCALAPPDATA%\Godot\
+    - macOS: ~/Library/Caches/Godot/
+    - Linux: ~/.cache/godot/
+
 ----
 
 .. _class_EditorPaths_method_get_config_dir:
 
 - :ref:`String<class_String>` **get_config_dir** **(** **)** |const|
 
+Returns the absolute path to the user's configuration folder. This folder should be used for *persistent* user configuration files.
+
+**Default paths per platform:**
+
+::
+
+    - Windows: %APPDATA%\Godot\                    (same as `get_data_dir()`)
+    - macOS: ~/Library/Application Support/Godot/  (same as `get_data_dir()`)
+    - Linux: ~/.config/godot/
+
 ----
 
 .. _class_EditorPaths_method_get_data_dir:
 
 - :ref:`String<class_String>` **get_data_dir** **(** **)** |const|
 
+Returns the absolute path to the user's data folder. This folder should be used for *persistent* user data files such as installed export templates.
+
+**Default paths per platform:**
+
+::
+
+    - Windows: %APPDATA%\Godot\                    (same as `get_config_dir()`)
+    - macOS: ~/Library/Application Support/Godot/  (same as `get_config_dir()`)
+    - Linux: ~/.local/share/godot/
+
 ----
 
 .. _class_EditorPaths_method_get_self_contained_file:
 
 - :ref:`String<class_String>` **get_self_contained_file** **(** **)** |const|
 
+Returns the absolute path to the self-contained file that makes the current Godot editor instance be considered as self-contained. Returns an empty string if the current Godot editor instance isn't self-contained. See also :ref:`is_self_contained<class_EditorPaths_method_is_self_contained>`.
+
 ----
 
 .. _class_EditorPaths_method_is_self_contained:
 
 - :ref:`bool<class_bool>` **is_self_contained** **(** **)** |const|
 
+Returns ``true`` if the editor is marked as self-contained, ``false`` otherwise. When self-contained mode is enabled, user configuration, data and cache files are saved in an ``editor_data/`` folder next to the editor binary. This makes portable usage easier and ensures the Godot editor minimizes file writes outside its own folder. Self-contained mode is not available for exported projects.
+
+Self-contained mode can be enabled by creating a file named ``._sc_`` or ``_sc_`` in the same folder as the editor binary while the editor is not running. See also :ref:`get_self_contained_file<class_EditorPaths_method_get_self_contained_file>`.
+
+**Note:** The Steam release of Godot uses self-contained mode by default.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 9 - 5
classes/class_float.rst

@@ -163,7 +163,7 @@ Multiplies two ``float``\ s.
 
 - :ref:`Quaternion<class_Quaternion>` **operator *** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
-Multiplies each component of the :ref:`Quaternion<class_Quaternion>` by the given ``float``.
+Multiplies each component of the :ref:`Quaternion<class_Quaternion>` by the given ``float``. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
 
 ----
 
@@ -173,17 +173,17 @@ Multiplies each component of the :ref:`Vector2<class_Vector2>` by the given ``fl
 
 ::
 
-    print(2.5 * Vector2(1, 1)) # Vector2(2.5, 2.5)
+    print(2.5 * Vector2(1, 3)) # Prints "(2.5, 7.5)"
 
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator *** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
-Multiplies each component of the :ref:`Vector2i<class_Vector2i>` by the given ``float``.
+Multiplies each component of the :ref:`Vector2i<class_Vector2i>` by the given ``float`` truncated to an integer.
 
 ::
 
-    print(2.0 * Vector2i(1, 1)) # Vector2i(2.0, 2.0)
+    print(0.9 * Vector2i(10, 20)) # Prints "(0, 0)"
 
 ----
 
@@ -195,7 +195,11 @@ Multiplies each component of the :ref:`Vector3<class_Vector3>` by the given ``fl
 
 - :ref:`Vector3i<class_Vector3i>` **operator *** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
-Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``float``.
+Multiplies each component of the :ref:`Vector3i<class_Vector3i>` by the given ``float`` truncated to an integer.
+
+::
+
+    print(0.9 * Vector3i(10, 20, 30)) # Prints "(0, 0, 0)"
 
 ----
 

+ 1 - 1
classes/class_graphedit.rst

@@ -608,7 +608,7 @@ Removes the possibility to disconnect nodes when dragging from the slot at the r
 
 - void **set_connection_activity** **(** :ref:`StringName<class_StringName>` from, :ref:`int<class_int>` from_port, :ref:`StringName<class_StringName>` to, :ref:`int<class_int>` to_port, :ref:`float<class_float>` amount **)**
 
-Sets the coloration of the connection between ``from``'s ``from_port`` and ``to``'s ``to_port`` with the color provided in the ``activity`` theme property.
+Sets the coloration of the connection between ``from``'s ``from_port`` and ``to``'s ``to_port`` with the color provided in the :ref:`activity<class_GraphEdit_theme_color_activity>` theme property.
 
 ----
 

+ 2 - 2
classes/class_graphnode.rst

@@ -211,9 +211,9 @@ enum **Overlay**:
 
 - **OVERLAY_DISABLED** = **0** --- No overlay is shown.
 
-- **OVERLAY_BREAKPOINT** = **1** --- Show overlay set in the ``breakpoint`` theme property.
+- **OVERLAY_BREAKPOINT** = **1** --- Show overlay set in the :ref:`breakpoint<class_GraphNode_theme_style_breakpoint>` theme property.
 
-- **OVERLAY_POSITION** = **2** --- Show overlay set in the ``position`` theme property.
+- **OVERLAY_POSITION** = **2** --- Show overlay set in the :ref:`position<class_GraphNode_theme_style_position>` theme property.
 
 Property Descriptions
 ---------------------

+ 6 - 2
classes/class_int.rst

@@ -197,13 +197,13 @@ Returns ``true`` if operands are different from each other.
 
 - :ref:`int<class_int>` **operator %** **(** :ref:`int<class_int>` right **)**
 
-Returns the result of the modulo operator for two integers, i.e. the remainder after dividing both numbers.
+Returns the remainder after dividing two integers. This operation uses truncated division, which is often not desired as it does not work well with negative numbers. Consider using :ref:`@GlobalScope.posmod<class_@GlobalScope_method_posmod>` instead if you want to handle negative numbers.
 
 ::
 
     print(5 % 2) # 1
     print(12 % 4) # 0
-    print(12 % 2) # 2
+    print(-5 % 3) # -2
 
 ----
 
@@ -233,10 +233,14 @@ It's useful to retrieve binary flags from a variable.
 
 - :ref:`Color<class_Color>` **operator *** **(** :ref:`Color<class_Color>` right **)**
 
+Multiplies each component of the :ref:`Color<class_Color>` by the given ``int``.
+
 ----
 
 - :ref:`Quaternion<class_Quaternion>` **operator *** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Multiplies each component of the :ref:`Quaternion<class_Quaternion>` by the given ``int``. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 - :ref:`int<class_int>` **operator *** **(** :ref:`int<class_int>` right **)**

+ 8 - 8
classes/class_pckpacker.rst

@@ -42,13 +42,13 @@ The above ``PCKPacker`` creates package ``test.pck``, then adds a file named ``t
 Methods
 -------
 
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`add_file<class_PCKPacker_method_add_file>` **(** :ref:`String<class_String>` pck_path, :ref:`String<class_String>` source_path, :ref:`bool<class_bool>` encrypt=false **)**                                           |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`flush<class_PCKPacker_method_flush>` **(** :ref:`bool<class_bool>` verbose=false **)**                                                                                                                                |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`pck_start<class_PCKPacker_method_pck_start>` **(** :ref:`String<class_String>` pck_name, :ref:`int<class_int>` alignment=0, :ref:`String<class_String>` key="", :ref:`bool<class_bool>` encrypt_directory=false **)** |
-+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`add_file<class_PCKPacker_method_add_file>` **(** :ref:`String<class_String>` pck_path, :ref:`String<class_String>` source_path, :ref:`bool<class_bool>` encrypt=false **)**                                                                                                            |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`flush<class_PCKPacker_method_flush>` **(** :ref:`bool<class_bool>` verbose=false **)**                                                                                                                                                                                                 |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`pck_start<class_PCKPacker_method_pck_start>` **(** :ref:`String<class_String>` pck_name, :ref:`int<class_int>` alignment=32, :ref:`String<class_String>` key="0000000000000000000000000000000000000000000000000000000000000000", :ref:`bool<class_bool>` encrypt_directory=false **)** |
++---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 Method Descriptions
 -------------------
@@ -71,7 +71,7 @@ Writes the files specified using all :ref:`add_file<class_PCKPacker_method_add_f
 
 .. _class_PCKPacker_method_pck_start:
 
-- :ref:`Error<enum_@GlobalScope_Error>` **pck_start** **(** :ref:`String<class_String>` pck_name, :ref:`int<class_int>` alignment=0, :ref:`String<class_String>` key="", :ref:`bool<class_bool>` encrypt_directory=false **)**
+- :ref:`Error<enum_@GlobalScope_Error>` **pck_start** **(** :ref:`String<class_String>` pck_name, :ref:`int<class_int>` alignment=32, :ref:`String<class_String>` key="0000000000000000000000000000000000000000000000000000000000000000", :ref:`bool<class_bool>` encrypt_directory=false **)**
 
 Creates a new PCK file with the name ``pck_name``. The ``.pck`` file extension isn't added automatically, so it should be part of ``pck_name`` (even though it's not required).
 

+ 12 - 0
classes/class_plane.rst

@@ -314,6 +314,10 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Plane<class_Plane>` right **)**
 
+Returns ``true`` if the planes are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Plane_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Plane_operator_eq_bool:
@@ -324,18 +328,26 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Plane<class_Plane>` right **)**
 
+Returns ``true`` if the planes are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Plane_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Plane_operator_unplus_Plane:
 
 - :ref:`Plane<class_Plane>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Plane_operator_unminus_Plane:
 
 - :ref:`Plane<class_Plane>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Plane``. This is the same as writing ``Plane(-p.normal, -p.d)``. This operation flips the direction of the normal vector and also flips the distance value, resulting in a Plane that is in the same place, but facing the opposite direction.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 30 - 0
classes/class_quaternion.rst

@@ -356,46 +356,66 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Returns ``true`` if the quaternions are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Quaternion_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Quaternion_operator_mul_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator *** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Composes these two quaternions by multiplying them together. This has the effect of rotating the second quaternion (the child) by the first quaternion (the parent).
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Rotates (multiplies) the :ref:`Vector3<class_Vector3>` by the given ``Quaternion``.
+
 ----
 
 - :ref:`Quaternion<class_Quaternion>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Quaternion`` by the given value. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 - :ref:`Quaternion<class_Quaternion>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Quaternion`` by the given value. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 .. _class_Quaternion_operator_sum_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator +** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Adds each component of the left ``Quaternion`` to the right ``Quaternion``. This operation is not meaningful on its own, but it can be used as a part of a larger expression, such as approximating an intermediate rotation between two nearby rotations.
+
 ----
 
 .. _class_Quaternion_operator_dif_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator -** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Subtracts each component of the left ``Quaternion`` by the right ``Quaternion``. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 .. _class_Quaternion_operator_div_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Quaternion`` by the given value. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 - :ref:`Quaternion<class_Quaternion>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Quaternion`` by the given value. This operation is not meaningful on its own, but it can be used as a part of a larger expression.
+
 ----
 
 .. _class_Quaternion_operator_eq_bool:
@@ -406,24 +426,34 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Returns ``true`` if the quaternions are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Quaternion_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Quaternion_operator_idx_float:
 
 - :ref:`float<class_float>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access quaternion components using their index. ``q[0]`` is equivalent to ``q.x``, ``q[1]`` is equivalent to ``q.y``, ``q[2]`` is equivalent to ``q.z``, and ``q[3]`` is equivalent to ``q.w``.
+
 ----
 
 .. _class_Quaternion_operator_unplus_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Quaternion_operator_unminus_Quaternion:
 
 - :ref:`Quaternion<class_Quaternion>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Quaternion``. This is the same as writing ``Quaternion(-q.x, -q.y, -q.z, -q.w)``. This operation results in a quaternion that represents the same rotation.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 10 - 0
classes/class_rect2.rst

@@ -326,12 +326,18 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Rect2<class_Rect2>` right **)**
 
+Returns ``true`` if the rectangles are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Rect2_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Rect2_operator_mul_Rect2:
 
 - :ref:`Rect2<class_Rect2>` **operator *** **(** :ref:`Transform2D<class_Transform2D>` right **)**
 
+Inversely transforms (multiplies) the ``Rect2`` by the given :ref:`Transform2D<class_Transform2D>` transformation matrix.
+
 ----
 
 .. _class_Rect2_operator_eq_bool:
@@ -342,6 +348,10 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Rect2<class_Rect2>` right **)**
 
+Returns ``true`` if the rectangles are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Rect2_method_is_equal_approx>` instead, which is more reliable.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 4 - 0
classes/class_rect2i.rst

@@ -310,6 +310,8 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Rect2i<class_Rect2i>` right **)**
 
+Returns ``true`` if the rectangles are not equal.
+
 ----
 
 .. _class_Rect2i_operator_eq_bool:
@@ -320,6 +322,8 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Rect2i<class_Rect2i>` right **)**
 
+Returns ``true`` if the rectangles are equal.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 13 - 3
classes/class_textedit.rst

@@ -169,7 +169,7 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`Color<class_Color>`                         | :ref:`get_line_background_color<class_TextEdit_method_get_line_background_color>` **(** :ref:`int<class_int>` line **)** |const|                                                                                                     |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| :ref:`Vector2i<class_Vector2i>`                   | :ref:`get_line_column_at_pos<class_TextEdit_method_get_line_column_at_pos>` **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|                                                                                             |
+| :ref:`Vector2i<class_Vector2i>`                   | :ref:`get_line_column_at_pos<class_TextEdit_method_get_line_column_at_pos>` **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` allow_out_of_bounds=true **)** |const|                                           |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_line_count<class_TextEdit_method_get_line_count>` **(** **)** |const|                                                                                                                                                      |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -235,6 +235,8 @@ Methods
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`int<class_int>`                             | :ref:`get_visible_line_count<class_TextEdit_method_get_visible_line_count>` **(** **)** |const|                                                                                                                                      |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+| :ref:`int<class_int>`                             | :ref:`get_visible_line_count_in_range<class_TextEdit_method_get_visible_line_count_in_range>` **(** :ref:`int<class_int>` from_line, :ref:`int<class_int>` to_line **)** |const|                                                     |
++---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`get_word_at_pos<class_TextEdit_method_get_word_at_pos>` **(** :ref:`Vector2<class_Vector2>` position **)** |const|                                                                                                             |
 +---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 | :ref:`String<class_String>`                       | :ref:`get_word_under_caret<class_TextEdit_method_get_word_under_caret>` **(** **)** |const|                                                                                                                                          |
@@ -1473,9 +1475,9 @@ Returns the current background color of the line. ``Color(0, 0, 0, 0)`` is retur
 
 .. _class_TextEdit_method_get_line_column_at_pos:
 
-- :ref:`Vector2i<class_Vector2i>` **get_line_column_at_pos** **(** :ref:`Vector2i<class_Vector2i>` position **)** |const|
+- :ref:`Vector2i<class_Vector2i>` **get_line_column_at_pos** **(** :ref:`Vector2i<class_Vector2i>` position, :ref:`bool<class_bool>` allow_out_of_bounds=true **)** |const|
 
-Returns the line and column at the given position. In the returned vector, ``x`` is the column, ``y`` is the line.
+Returns the line and column at the given position. In the returned vector, ``x`` is the column, ``y`` is the line. If ``allow_out_of_bounds`` is ``false`` and the position is not over the text, both vector values will be set to ``-1``.
 
 ----
 
@@ -1737,6 +1739,14 @@ Returns the number of visible lines, including wrapped text.
 
 ----
 
+.. _class_TextEdit_method_get_visible_line_count_in_range:
+
+- :ref:`int<class_int>` **get_visible_line_count_in_range** **(** :ref:`int<class_int>` from_line, :ref:`int<class_int>` to_line **)** |const|
+
+Returns the total number of visible + wrapped lines between the two lines.
+
+----
+
 .. _class_TextEdit_method_get_word_at_pos:
 
 - :ref:`String<class_String>` **get_word_at_pos** **(** :ref:`Vector2<class_Vector2>` position **)** |const|

+ 18 - 0
classes/class_transform2d.rst

@@ -372,24 +372,36 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Transform2D<class_Transform2D>` right **)**
 
+Returns ``true`` if the transforms are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Transform2D_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Transform2D_operator_mul_PackedVector2Array:
 
 - :ref:`PackedVector2Array<class_PackedVector2Array>` **operator *** **(** :ref:`PackedVector2Array<class_PackedVector2Array>` right **)**
 
+Transforms (multiplies) each element of the :ref:`Vector2<class_Vector2>` array by the given ``Transform2D`` matrix.
+
 ----
 
 - :ref:`Transform2D<class_Transform2D>` **operator *** **(** :ref:`Transform2D<class_Transform2D>` right **)**
 
+Composes these two transformation matrices by multiplying them together. This has the effect of transforming the second transform (the child) by the first transform (the parent).
+
 ----
 
 - :ref:`Rect2<class_Rect2>` **operator *** **(** :ref:`Rect2<class_Rect2>` right **)**
 
+Transforms (multiplies) the :ref:`Rect2<class_Rect2>` by the given ``Transform2D`` matrix.
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Transforms (multiplies) the :ref:`Vector2<class_Vector2>` by the given ``Transform2D`` matrix.
+
 ----
 
 - :ref:`Transform2D<class_Transform2D>` **operator *** **(** :ref:`float<class_float>` right **)**
@@ -412,12 +424,18 @@ This operator multiplies all components of the ``Transform2D``, including the or
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Transform2D<class_Transform2D>` right **)**
 
+Returns ``true`` if the transforms are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Transform2D_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Transform2D_operator_idx_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access transform components using their index. ``t[0]`` is equivalent to ``t.x``, ``t[1]`` is equivalent to ``t.y``, and ``t[2]`` is equivalent to ``t.origin``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 16 - 0
classes/class_transform3d.rst

@@ -262,24 +262,36 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
+Returns ``true`` if the transforms are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Transform3D_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Transform3D_operator_mul_PackedVector3Array:
 
 - :ref:`PackedVector3Array<class_PackedVector3Array>` **operator *** **(** :ref:`PackedVector3Array<class_PackedVector3Array>` right **)**
 
+Transforms (multiplies) each element of the :ref:`Vector3<class_Vector3>` array by the given ``Transform3D`` matrix.
+
 ----
 
 - :ref:`Transform3D<class_Transform3D>` **operator *** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
+Composes these two transformation matrices by multiplying them together. This has the effect of transforming the second transform (the child) by the first transform (the parent).
+
 ----
 
 - :ref:`AABB<class_AABB>` **operator *** **(** :ref:`AABB<class_AABB>` right **)**
 
+Transforms (multiplies) the :ref:`AABB<class_AABB>` by the given ``Transform3D`` matrix.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Transforms (multiplies) the :ref:`Vector3<class_Vector3>` by the given ``Transform3D`` matrix.
+
 ----
 
 - :ref:`Transform3D<class_Transform3D>` **operator *** **(** :ref:`float<class_float>` right **)**
@@ -302,6 +314,10 @@ This operator multiplies all components of the ``Transform3D``, including the or
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
+Returns ``true`` if the transforms are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Transform3D_method_is_equal_approx>` instead, which is more reliable.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 56 - 0
classes/class_vector2.rst

@@ -590,62 +590,104 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Returns ``true`` if the vectors are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Vector2_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Vector2_operator_mul_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Multiplies each component of the ``Vector2`` by the components of the given ``Vector2``.
+
+::
+
+    print(Vector2(10, 20) * Vector2(3, 4)) # Prints "(30, 80)"
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`Transform2D<class_Transform2D>` right **)**
 
+Inversely transforms (multiplies) the ``Vector2`` by the given :ref:`Transform2D<class_Transform2D>` transformation matrix.
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Vector2`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Vector2`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector2_operator_sum_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator +** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Adds each component of the ``Vector2`` by the components of the given ``Vector2``.
+
+::
+
+    print(Vector2(10, 20) + Vector2(3, 4)) # Prints "(13, 24)"
+
 ----
 
 .. _class_Vector2_operator_dif_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator -** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Subtracts each component of the ``Vector2`` by the components of the given ``Vector2``.
+
+::
+
+    print(Vector2(10, 20) - Vector2(3, 4)) # Prints "(7, 16)"
+
 ----
 
 .. _class_Vector2_operator_div_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator /** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Divides each component of the ``Vector2`` by the components of the given ``Vector2``.
+
+::
+
+    print(Vector2(10, 20) / Vector2(2, 5)) # Prints "(5, 4)"
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Vector2`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Vector2<class_Vector2>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Vector2`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector2_operator_lt_bool:
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Compares two ``Vector2`` vectors by first checking if the X value of the left vector is less than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2_operator_lte_bool:
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Compares two ``Vector2`` vectors by first checking if the X value of the left vector is less than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2_operator_eq_bool:
@@ -656,36 +698,50 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Returns ``true`` if the vectors are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Vector2_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Vector2_operator_gt_bool:
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Compares two ``Vector2`` vectors by first checking if the X value of the left vector is greater than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2_operator_gte_bool:
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`Vector2<class_Vector2>` right **)**
 
+Compares two ``Vector2`` vectors by first checking if the X value of the left vector is greater than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2_operator_idx_float:
 
 - :ref:`float<class_float>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access vector components using their index. ``v[0]`` is equivalent to ``v.x``, and ``v[1]`` is equivalent to ``v.y``.
+
 ----
 
 .. _class_Vector2_operator_unplus_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Vector2_operator_unminus_Vector2:
 
 - :ref:`Vector2<class_Vector2>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Vector2``. This is the same as writing ``Vector2(-v.x, -v.y)``. This operation flips the direction of the vector while keeping the same magnitude. With floats, the number zero can be either positive or negative.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 70 - 0
classes/class_vector2i.rst

@@ -242,68 +242,126 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Returns ``true`` if the vectors are not equal.
+
 ----
 
 .. _class_Vector2i_operator_mod_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator %** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Gets the remainder of each component of the ``Vector2i`` with the components of the given ``Vector2i``. This operation uses truncated division, which is often not desired as it does not work well with negative numbers. Consider using :ref:`@GlobalScope.posmod<class_@GlobalScope_method_posmod>` instead if you want to handle negative numbers.
+
+::
+
+    print(Vector2i(10, -20) % Vector2i(7, 8)) # Prints "(3, -4)"
+
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator %** **(** :ref:`int<class_int>` right **)**
 
+Gets the remainder of each component of the ``Vector2i`` with the the given :ref:`int<class_int>`. This operation uses truncated division, which is often not desired as it does not work well with negative numbers. Consider using :ref:`@GlobalScope.posmod<class_@GlobalScope_method_posmod>` instead if you want to handle negative numbers.
+
+::
+
+    print(Vector2i(10, -20) % 7) # Prints "(3, -6)"
+
 ----
 
 .. _class_Vector2i_operator_mul_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator *** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Multiplies each component of the ``Vector2i`` by the components of the given ``Vector2i``.
+
+::
+
+    print(Vector2i(10, 20) * Vector2i(3, 4)) # Prints "(30, 80)"
+
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Vector2i`` by the given :ref:`float<class_float>` truncated to an integer.
+
+::
+
+    print(Vector2i(10, 20) * 0.9) # Prints "(0, 0)"
+
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Vector2i`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector2i_operator_sum_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator +** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Adds each component of the ``Vector2i`` by the components of the given ``Vector2i``.
+
+::
+
+    print(Vector2i(10, 20) + Vector2i(3, 4)) # Prints "(13, 24)"
+
 ----
 
 .. _class_Vector2i_operator_dif_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator -** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Subtracts each component of the ``Vector2i`` by the components of the given ``Vector2i``.
+
+::
+
+    print(Vector2i(10, 20) - Vector2i(3, 4)) # Prints "(7, 16)"
+
 ----
 
 .. _class_Vector2i_operator_div_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator /** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Divides each component of the ``Vector2i`` by the components of the given ``Vector2i``.
+
+::
+
+    print(Vector2i(10, 20) / Vector2i(2, 5)) # Prints "(5, 4)"
+
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Vector2i`` by the given :ref:`float<class_float>` truncated to an integer.
+
+::
+
+    print(Vector2i(10, 20) / 2.9) # Prints "(5, 10)"
+
 ----
 
 - :ref:`Vector2i<class_Vector2i>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Vector2i`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector2i_operator_lt_bool:
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Compares two ``Vector2i`` vectors by first checking if the X value of the left vector is less than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2i_operator_lte_bool:
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Compares two ``Vector2i`` vectors by first checking if the X value of the left vector is less than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2i_operator_eq_bool:
@@ -314,36 +372,48 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Returns ``true`` if the vectors are equal.
+
 ----
 
 .. _class_Vector2i_operator_gt_bool:
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Compares two ``Vector2i`` vectors by first checking if the X value of the left vector is greater than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2i_operator_gte_bool:
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`Vector2i<class_Vector2i>` right **)**
 
+Compares two ``Vector2i`` vectors by first checking if the X value of the left vector is greater than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector2i_operator_idx_int:
 
 - :ref:`int<class_int>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access vector components using their index. ``v[0]`` is equivalent to ``v.x``, and ``v[1]`` is equivalent to ``v.y``.
+
 ----
 
 .. _class_Vector2i_operator_unplus_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Vector2i_operator_unminus_Vector2i:
 
 - :ref:`Vector2i<class_Vector2i>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Vector2i``. This is the same as writing ``Vector2i(-v.x, -v.y)``. This operation flips the direction of the vector while keeping the same magnitude.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 60 - 0
classes/class_vector3.rst

@@ -618,70 +618,116 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Returns ``true`` if the vectors are not equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Vector3_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Vector3_operator_mul_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Multiplies each component of the ``Vector3`` by the components of the given ``Vector3``.
+
+::
+
+    print(Vector3(10, 20, 30) * Vector3(3, 4, 5)) # Prints "(30, 80, 150)"
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Basis<class_Basis>` right **)**
 
+Inversely transforms (multiplies) the ``Vector3`` by the given :ref:`Basis<class_Basis>` matrix.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Quaternion<class_Quaternion>` right **)**
 
+Inversely transforms (multiplies) the ``Vector3`` by the given :ref:`Quaternion<class_Quaternion>`.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`Transform3D<class_Transform3D>` right **)**
 
+Inversely transforms (multiplies) the ``Vector3`` by the given :ref:`Transform3D<class_Transform3D>` transformation matrix.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Vector3`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Vector3`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector3_operator_sum_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator +** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Adds each component of the ``Vector3`` by the components of the given ``Vector3``.
+
+::
+
+    print(Vector3(10, 20, 30) + Vector3(3, 4, 5)) # Prints "(13, 24, 35)"
+
 ----
 
 .. _class_Vector3_operator_dif_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator -** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Subtracts each component of the ``Vector3`` by the components of the given ``Vector3``.
+
+::
+
+    print(Vector3(10, 20, 30) - Vector3(3, 4, 5)) # Prints "(7, 16, 25)"
+
 ----
 
 .. _class_Vector3_operator_div_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator /** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Divides each component of the ``Vector3`` by the components of the given ``Vector3``.
+
+::
+
+    print(Vector3(10, 20, 30) / Vector3(2, 5, 3)) # Prints "(5, 4, 10)"
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Vector3`` by the given :ref:`float<class_float>`.
+
 ----
 
 - :ref:`Vector3<class_Vector3>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Vector3`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector3_operator_lt_bool:
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Compares two ``Vector3`` vectors by first checking if the X value of the left vector is less than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3_operator_lte_bool:
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Compares two ``Vector3`` vectors by first checking if the X value of the left vector is less than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3_operator_eq_bool:
@@ -692,36 +738,50 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Returns ``true`` if the vectors are exactly equal.
+
+**Note:** Due to floating-point precision errors, consider using :ref:`is_equal_approx<class_Vector3_method_is_equal_approx>` instead, which is more reliable.
+
 ----
 
 .. _class_Vector3_operator_gt_bool:
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Compares two ``Vector3`` vectors by first checking if the X value of the left vector is greater than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3_operator_gte_bool:
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`Vector3<class_Vector3>` right **)**
 
+Compares two ``Vector3`` vectors by first checking if the X value of the left vector is greater than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3_operator_idx_float:
 
 - :ref:`float<class_float>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access vector components using their index. ``v[0]`` is equivalent to ``v.x``, ``v[1]`` is equivalent to ``v.y``, and ``v[2]`` is equivalent to ``v.z``.
+
 ----
 
 .. _class_Vector3_operator_unplus_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Vector3_operator_unminus_Vector3:
 
 - :ref:`Vector3<class_Vector3>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Vector3``. This is the same as writing ``Vector3(-v.x, -v.y, -v.z)``. This operation flips the direction of the vector while keeping the same magnitude. With floats, the number zero can be either positive or negative.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 70 - 0
classes/class_vector3i.rst

@@ -276,68 +276,126 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator !=** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Returns ``true`` if the vectors are not equal.
+
 ----
 
 .. _class_Vector3i_operator_mod_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator %** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Gets the remainder of each component of the ``Vector3i`` with the components of the given ``Vector3i``. This operation uses truncated division, which is often not desired as it does not work well with negative numbers. Consider using :ref:`@GlobalScope.posmod<class_@GlobalScope_method_posmod>` instead if you want to handle negative numbers.
+
+::
+
+    print(Vector3i(10, -20, 30) % Vector3i(7, 8, 9)) # Prints "(3, -4, 3)"
+
 ----
 
 - :ref:`Vector3i<class_Vector3i>` **operator %** **(** :ref:`int<class_int>` right **)**
 
+Gets the remainder of each component of the ``Vector3i`` with the the given :ref:`int<class_int>`. This operation uses truncated division, which is often not desired as it does not work well with negative numbers. Consider using :ref:`@GlobalScope.posmod<class_@GlobalScope_method_posmod>` instead if you want to handle negative numbers.
+
+::
+
+    print(Vector2i(10, -20, 30) % 7) # Prints "(3, -6, 2)"
+
 ----
 
 .. _class_Vector3i_operator_mul_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator *** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Multiplies each component of the ``Vector3i`` by the components of the given ``Vector3i``.
+
+::
+
+    print(Vector3i(10, 20, 30) * Vector3i(3, 4, 5)) # Prints "(30, 80, 150)"
+
 ----
 
 - :ref:`Vector3i<class_Vector3i>` **operator *** **(** :ref:`float<class_float>` right **)**
 
+Multiplies each component of the ``Vector3i`` by the given :ref:`float<class_float>` truncated to an integer.
+
+::
+
+    print(Vector3i(10, 20, 30) * 0.9) # Prints "(0, 0, 0)"
+
 ----
 
 - :ref:`Vector3i<class_Vector3i>` **operator *** **(** :ref:`int<class_int>` right **)**
 
+Multiplies each component of the ``Vector3i`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector3i_operator_sum_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator +** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Adds each component of the ``Vector3i`` by the components of the given ``Vector3i``.
+
+::
+
+    print(Vector3i(10, 20, 30) + Vector3i(3, 4, 5)) # Prints "(13, 24, 35)"
+
 ----
 
 .. _class_Vector3i_operator_dif_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator -** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Subtracts each component of the ``Vector3i`` by the components of the given ``Vector3i``.
+
+::
+
+    print(Vector3i(10, 20, 30) - Vector3i(3, 4, 5)) # Prints "(7, 16, 25)"
+
 ----
 
 .. _class_Vector3i_operator_div_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator /** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Divides each component of the ``Vector3i`` by the components of the given ``Vector3i``.
+
+::
+
+    print(Vector3i(10, 20, 30) / Vector3i(2, 5, 3)) # Prints "(5, 4, 10)"
+
 ----
 
 - :ref:`Vector3i<class_Vector3i>` **operator /** **(** :ref:`float<class_float>` right **)**
 
+Divides each component of the ``Vector3i`` by the given :ref:`float<class_float>` truncated to an integer.
+
+::
+
+    print(Vector3i(10, 20, 30) / 2.9) # Prints "(5, 10, 15)"
+
 ----
 
 - :ref:`Vector3i<class_Vector3i>` **operator /** **(** :ref:`int<class_int>` right **)**
 
+Divides each component of the ``Vector3i`` by the given :ref:`int<class_int>`.
+
 ----
 
 .. _class_Vector3i_operator_lt_bool:
 
 - :ref:`bool<class_bool>` **operator <** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Compares two ``Vector3i`` vectors by first checking if the X value of the left vector is less than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3i_operator_lte_bool:
 
 - :ref:`bool<class_bool>` **operator <=** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Compares two ``Vector3i`` vectors by first checking if the X value of the left vector is less than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3i_operator_eq_bool:
@@ -348,36 +406,48 @@ Operator Descriptions
 
 - :ref:`bool<class_bool>` **operator ==** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Returns ``true`` if the vectors are equal.
+
 ----
 
 .. _class_Vector3i_operator_gt_bool:
 
 - :ref:`bool<class_bool>` **operator >** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Compares two ``Vector3i`` vectors by first checking if the X value of the left vector is greater than the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3i_operator_gte_bool:
 
 - :ref:`bool<class_bool>` **operator >=** **(** :ref:`Vector3i<class_Vector3i>` right **)**
 
+Compares two ``Vector3i`` vectors by first checking if the X value of the left vector is greater than or equal to the X value of the ``right`` vector. If the X values are exactly equal, then it repeats this check with the Y values of the two vectors, and then with the Z values. This operator is useful for sorting vectors.
+
 ----
 
 .. _class_Vector3i_operator_idx_int:
 
 - :ref:`int<class_int>` **operator []** **(** :ref:`int<class_int>` index **)**
 
+Access vector components using their index. ``v[0]`` is equivalent to ``v.x``, ``v[1]`` is equivalent to ``v.y``, and ``v[2]`` is equivalent to ``v.z``.
+
 ----
 
 .. _class_Vector3i_operator_unplus_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator unary+** **(** **)**
 
+Returns the same value as if the ``+`` was not there. Unary ``+`` does nothing, but sometimes it can make your code more readable.
+
 ----
 
 .. _class_Vector3i_operator_unminus_Vector3i:
 
 - :ref:`Vector3i<class_Vector3i>` **operator unary-** **(** **)**
 
+Returns the negative value of the ``Vector3i``. This is the same as writing ``Vector3i(-v.x, -v.y, -v.z)``. This operation flips the direction of the vector while keeping the same magnitude.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 39 - 35
classes/class_visualscriptbuiltinfunc.rst

@@ -98,9 +98,11 @@ Enumerations
 
 .. _class_VisualScriptBuiltinFunc_constant_MATH_RANDF:
 
+.. _class_VisualScriptBuiltinFunc_constant_MATH_RANDI_RANGE:
+
 .. _class_VisualScriptBuiltinFunc_constant_MATH_RANDF_RANGE:
 
-.. _class_VisualScriptBuiltinFunc_constant_MATH_RANDI_RANGE:
+.. _class_VisualScriptBuiltinFunc_constant_MATH_RANDFN:
 
 .. _class_VisualScriptBuiltinFunc_constant_MATH_SEED:
 
@@ -234,78 +236,80 @@ enum **BuiltinFunc**:
 
 - **MATH_RANDF** = **32** --- Return a random floating-point value between 0 and 1. To obtain a random value between 0 to N, you can use it with multiplication.
 
-- **MATH_RANDF_RANGE** = **33** --- Return a random floating-point value between the two inputs.
+- **MATH_RANDI_RANGE** = **33** --- Return a random 32-bit integer value between the two inputs.
+
+- **MATH_RANDF_RANGE** = **34** --- Return a random floating-point value between the two inputs.
 
-- **MATH_RANDI_RANGE** = **34** --- Return a random 32-bit integer value between the two inputs.
+- **MATH_RANDFN** = **35** --- Returns a normally-distributed pseudo-random number, using Box-Muller transform with the specified mean and a standard deviation. This is also called Gaussian distribution.
 
-- **MATH_SEED** = **35** --- Set the seed for the random number generator.
+- **MATH_SEED** = **36** --- Set the seed for the random number generator.
 
-- **MATH_RANDSEED** = **36** --- Return a random value from the given seed, along with the new seed.
+- **MATH_RANDSEED** = **37** --- Return a random value from the given seed, along with the new seed.
 
-- **MATH_DEG2RAD** = **37** --- Convert the input from degrees to radians.
+- **MATH_DEG2RAD** = **38** --- Convert the input from degrees to radians.
 
-- **MATH_RAD2DEG** = **38** --- Convert the input from radians to degrees.
+- **MATH_RAD2DEG** = **39** --- Convert the input from radians to degrees.
 
-- **MATH_LINEAR2DB** = **39** --- Convert the input from linear volume to decibel volume.
+- **MATH_LINEAR2DB** = **40** --- Convert the input from linear volume to decibel volume.
 
-- **MATH_DB2LINEAR** = **40** --- Convert the input from decibel volume to linear volume.
+- **MATH_DB2LINEAR** = **41** --- Convert the input from decibel volume to linear volume.
 
-- **MATH_WRAP** = **41**
+- **MATH_WRAP** = **42**
 
-- **MATH_WRAPF** = **42**
+- **MATH_WRAPF** = **43**
 
-- **MATH_PINGPONG** = **43** --- Return the ``value`` wrapped between ``0`` and the ``length``. If the limit is reached, the next value the function returned is decreased to the ``0`` side or increased to the ``length`` side (like a triangle wave). If ``length`` is less than zero, it becomes positive.
+- **MATH_PINGPONG** = **44** --- Return the ``value`` wrapped between ``0`` and the ``length``. If the limit is reached, the next value the function returned is decreased to the ``0`` side or increased to the ``length`` side (like a triangle wave). If ``length`` is less than zero, it becomes positive.
 
-- **LOGIC_MAX** = **44** --- Return the greater of the two numbers, also known as their maximum.
+- **LOGIC_MAX** = **45** --- Return the greater of the two numbers, also known as their maximum.
 
-- **LOGIC_MIN** = **45** --- Return the lesser of the two numbers, also known as their minimum.
+- **LOGIC_MIN** = **46** --- Return the lesser of the two numbers, also known as their minimum.
 
-- **LOGIC_CLAMP** = **46** --- Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to ``min(max(input, range_low), range_high)``.
+- **LOGIC_CLAMP** = **47** --- Return the input clamped inside the given range, ensuring the result is never outside it. Equivalent to ``min(max(input, range_low), range_high)``.
 
-- **LOGIC_NEAREST_PO2** = **47** --- Return the nearest power of 2 to the input.
+- **LOGIC_NEAREST_PO2** = **48** --- Return the nearest power of 2 to the input.
 
-- **OBJ_WEAKREF** = **48** --- Create a :ref:`WeakRef<class_WeakRef>` from the input.
+- **OBJ_WEAKREF** = **49** --- Create a :ref:`WeakRef<class_WeakRef>` from the input.
 
-- **TYPE_CONVERT** = **49** --- Convert between types.
+- **TYPE_CONVERT** = **50** --- Convert between types.
 
-- **TYPE_OF** = **50** --- Return the type of the input as an integer. Check :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` for the integers that might be returned.
+- **TYPE_OF** = **51** --- Return the type of the input as an integer. Check :ref:`Variant.Type<enum_@GlobalScope_Variant.Type>` for the integers that might be returned.
 
-- **TYPE_EXISTS** = **51** --- Checks if a type is registered in the :ref:`ClassDB<class_ClassDB>`.
+- **TYPE_EXISTS** = **52** --- Checks if a type is registered in the :ref:`ClassDB<class_ClassDB>`.
 
-- **TEXT_CHAR** = **52** --- Return a character with the given ascii value.
+- **TEXT_CHAR** = **53** --- Return a character with the given ascii value.
 
-- **TEXT_STR** = **53** --- Convert the input to a string.
+- **TEXT_STR** = **54** --- Convert the input to a string.
 
-- **TEXT_PRINT** = **54** --- Print the given string to the output window.
+- **TEXT_PRINT** = **55** --- Print the given string to the output window.
 
-- **TEXT_PRINTERR** = **55** --- Print the given string to the standard error output.
+- **TEXT_PRINTERR** = **56** --- Print the given string to the standard error output.
 
-- **TEXT_PRINTRAW** = **56** --- Print the given string to the standard output, without adding a newline.
+- **TEXT_PRINTRAW** = **57** --- Print the given string to the standard output, without adding a newline.
 
-- **TEXT_PRINT_VERBOSE** = **57**
+- **TEXT_PRINT_VERBOSE** = **58**
 
-- **VAR_TO_STR** = **58** --- Serialize a :ref:`Variant<class_Variant>` to a string.
+- **VAR_TO_STR** = **59** --- Serialize a :ref:`Variant<class_Variant>` to a string.
 
-- **STR_TO_VAR** = **59** --- Deserialize a :ref:`Variant<class_Variant>` from a string serialized using :ref:`VAR_TO_STR<class_VisualScriptBuiltinFunc_constant_VAR_TO_STR>`.
+- **STR_TO_VAR** = **60** --- Deserialize a :ref:`Variant<class_Variant>` from a string serialized using :ref:`VAR_TO_STR<class_VisualScriptBuiltinFunc_constant_VAR_TO_STR>`.
 
-- **VAR_TO_BYTES** = **60** --- Serialize a :ref:`Variant<class_Variant>` to a :ref:`PackedByteArray<class_PackedByteArray>`.
+- **VAR_TO_BYTES** = **61** --- Serialize a :ref:`Variant<class_Variant>` to a :ref:`PackedByteArray<class_PackedByteArray>`.
 
-- **BYTES_TO_VAR** = **61** --- Deserialize a :ref:`Variant<class_Variant>` from a :ref:`PackedByteArray<class_PackedByteArray>` serialized using :ref:`VAR_TO_BYTES<class_VisualScriptBuiltinFunc_constant_VAR_TO_BYTES>`.
+- **BYTES_TO_VAR** = **62** --- Deserialize a :ref:`Variant<class_Variant>` from a :ref:`PackedByteArray<class_PackedByteArray>` serialized using :ref:`VAR_TO_BYTES<class_VisualScriptBuiltinFunc_constant_VAR_TO_BYTES>`.
 
-- **MATH_SMOOTHSTEP** = **62** --- Return a number smoothly interpolated between the first two inputs, based on the third input. Similar to :ref:`MATH_LERP<class_VisualScriptBuiltinFunc_constant_MATH_LERP>`, but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula:
+- **MATH_SMOOTHSTEP** = **63** --- Return a number smoothly interpolated between the first two inputs, based on the third input. Similar to :ref:`MATH_LERP<class_VisualScriptBuiltinFunc_constant_MATH_LERP>`, but interpolates faster at the beginning and slower at the end. Using Hermite interpolation formula:
 
 ::
 
     var t = clamp((weight - from) / (to - from), 0.0, 1.0)
     return t * t * (3.0 - 2.0 * t)
 
-- **MATH_POSMOD** = **63**
+- **MATH_POSMOD** = **64**
 
-- **MATH_LERP_ANGLE** = **64**
+- **MATH_LERP_ANGLE** = **65**
 
-- **TEXT_ORD** = **65**
+- **TEXT_ORD** = **66**
 
-- **FUNC_MAX** = **66** --- Represents the size of the :ref:`BuiltinFunc<enum_VisualScriptBuiltinFunc_BuiltinFunc>` enum.
+- **FUNC_MAX** = **67** --- Represents the size of the :ref:`BuiltinFunc<enum_VisualScriptBuiltinFunc_BuiltinFunc>` enum.
 
 Property Descriptions
 ---------------------