From 83e324d670ca05993403c5d0ad7762aa096a7978 Mon Sep 17 00:00:00 2001 From: Aaron Franke Date: Tue, 21 Jul 2020 14:07:00 -0400 Subject: Update core documentation to match recent C# changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also a few minor API changes like adding AABB.abs() Co-authored-by: Rémi Verschelde --- core/math/aabb.h | 4 ++ core/math/geometry_3d.cpp | 2 +- core/math/plane.cpp | 4 -- core/math/plane.h | 1 - core/variant_call.cpp | 4 +- doc/classes/AABB.xml | 16 ++++-- doc/classes/Basis.xml | 35 ++++++----- doc/classes/Color.xml | 26 ++++----- doc/classes/Plane.xml | 29 ++++------ doc/classes/Quat.xml | 41 +++++++------ doc/classes/Rect2.xml | 7 ++- doc/classes/Rect2i.xml | 7 ++- doc/classes/Transform.xml | 16 +++--- doc/classes/Transform2D.xml | 34 ++++++----- doc/classes/Vector2.xml | 62 ++++++++++---------- doc/classes/Vector2i.xml | 12 ++-- doc/classes/Vector3.xml | 67 +++++++++++----------- doc/classes/Vector3i.xml | 16 +++--- modules/gdnative/gdnative/aabb.cpp | 7 +++ modules/gdnative/gdnative/plane.cpp | 7 --- modules/gdnative/gdnative_api.json | 14 ++--- modules/gdnative/include/gdnative/aabb.h | 2 + modules/gdnative/include/gdnative/plane.h | 2 - modules/gdscript/doc_classes/@GDScript.xml | 64 ++++++++------------- .../mono/glue/GodotSharp/GodotSharp/Core/Color.cs | 2 +- .../mono/glue/GodotSharp/GodotSharp/Core/Plane.cs | 8 ++- 26 files changed, 253 insertions(+), 236 deletions(-) diff --git a/core/math/aabb.h b/core/math/aabb.h index 4106fbb93c..bd1f3a1a36 100644 --- a/core/math/aabb.h +++ b/core/math/aabb.h @@ -99,6 +99,10 @@ public: _FORCE_INLINE_ void project_range_in_plane(const Plane &p_plane, real_t &r_min, real_t &r_max) const; _FORCE_INLINE_ void expand_to(const Vector3 &p_vector); /** expand to contain a point if necessary */ + _FORCE_INLINE_ AABB abs() const { + return AABB(Vector3(position.x + MIN(size.x, 0), position.y + MIN(size.y, 0), position.z + MIN(size.z, 0)), size.abs()); + } + operator String() const; _FORCE_INLINE_ AABB() {} diff --git a/core/math/geometry_3d.cpp b/core/math/geometry_3d.cpp index 7807ab19a7..2c19fe2085 100644 --- a/core/math/geometry_3d.cpp +++ b/core/math/geometry_3d.cpp @@ -648,7 +648,7 @@ Geometry3D::MeshData Geometry3D::build_convex_mesh(const Vector &p_planes Vector vertices; - Vector3 center = p.get_any_point(); + Vector3 center = p.center(); // make a quad clockwise vertices.push_back(center - up * subplane_size + right * subplane_size); vertices.push_back(center - up * subplane_size - right * subplane_size); diff --git a/core/math/plane.cpp b/core/math/plane.cpp index df37ceb0e5..4200484c59 100644 --- a/core/math/plane.cpp +++ b/core/math/plane.cpp @@ -52,10 +52,6 @@ Plane Plane::normalized() const { return p; } -Vector3 Plane::get_any_point() const { - return get_normal() * d; -} - Vector3 Plane::get_any_perpendicular_normal() const { static const Vector3 p1 = Vector3(1, 0, 0); static const Vector3 p2 = Vector3(0, 1, 0); diff --git a/core/math/plane.h b/core/math/plane.h index 9a3e5a485f..70a6111edd 100644 --- a/core/math/plane.h +++ b/core/math/plane.h @@ -47,7 +47,6 @@ public: /* Plane-Point operations */ _FORCE_INLINE_ Vector3 center() const { return normal * d; } - Vector3 get_any_point() const; Vector3 get_any_perpendicular_normal() const; _FORCE_INLINE_ bool is_point_over(const Vector3 &p_point) const; ///< Point is over plane diff --git a/core/variant_call.cpp b/core/variant_call.cpp index 0aa1339401..8afa24e63d 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -455,7 +455,6 @@ struct _VariantCall { VCALL_LOCALMEM0R(Plane, normalized); VCALL_LOCALMEM0R(Plane, center); - VCALL_LOCALMEM0R(Plane, get_any_point); VCALL_LOCALMEM1R(Plane, is_equal_approx); VCALL_LOCALMEM1R(Plane, is_point_over); VCALL_LOCALMEM1R(Plane, distance_to); @@ -843,6 +842,7 @@ struct _VariantCall { #define VCALL_PTR5R(m_type, m_method) \ static void _call_##m_type##_##m_method(Variant &r_ret, Variant &p_self, const Variant **p_args) { r_ret = reinterpret_cast(p_self._data._ptr)->m_method(*p_args[0], *p_args[1], *p_args[2], *p_args[3], *p_args[4]); } + VCALL_PTR0R(AABB, abs); VCALL_PTR0R(AABB, get_area); VCALL_PTR0R(AABB, has_no_area); VCALL_PTR0R(AABB, has_no_surface); @@ -1980,7 +1980,6 @@ void register_variant_methods() { ADDFUNC0R(PLANE, PLANE, Plane, normalized, varray()); ADDFUNC0R(PLANE, VECTOR3, Plane, center, varray()); - ADDFUNC0R(PLANE, VECTOR3, Plane, get_any_point, varray()); ADDFUNC1R(PLANE, BOOL, Plane, is_equal_approx, PLANE, "plane", varray()); ADDFUNC1R(PLANE, BOOL, Plane, is_point_over, VECTOR3, "point", varray()); ADDFUNC1R(PLANE, FLOAT, Plane, distance_to, VECTOR3, "point", varray()); @@ -2220,6 +2219,7 @@ void register_variant_methods() { //pointerbased + ADDFUNC0R(AABB, AABB, AABB, abs, varray()); ADDFUNC0R(AABB, FLOAT, AABB, get_area, varray()); ADDFUNC0R(AABB, BOOL, AABB, has_no_area, varray()); ADDFUNC0R(AABB, BOOL, AABB, has_no_surface, varray()); diff --git a/doc/classes/AABB.xml b/doc/classes/AABB.xml index 3f2f27d121..ae80abc5d2 100644 --- a/doc/classes/AABB.xml +++ b/doc/classes/AABB.xml @@ -18,7 +18,14 @@ - Optional constructor, accepts position and size. + Constructs an [AABB] from a position and size. + + + + + + + Returns an AABB with equivalent position and size, modified so that the most-negative corner is the origin and the size is positive. @@ -197,13 +204,14 @@ - Ending corner. This is calculated as [code]position + size[/code]. Changing this property changes [member size] accordingly. + Ending corner. This is calculated as [code]position + size[/code]. Setting this value will change the size. - Beginning corner. + Beginning corner. Typically has values lower than [member end]. - Size from position to end. + Size from [member position] to [member end]. Typically all components are positive. + If the size is negative, you can use [method abs] to fix it. diff --git a/doc/classes/Basis.xml b/doc/classes/Basis.xml index 3952ea2d27..47433d7adc 100644 --- a/doc/classes/Basis.xml +++ b/doc/classes/Basis.xml @@ -4,10 +4,13 @@ 3×3 matrix datatype. - 3×3 matrix used for 3D rotation and scale. Contains 3 vector fields X, Y and Z as its columns, which can be interpreted as the local basis vectors of a transformation. Can also be accessed as array of 3D vectors. These vectors are orthogonal to each other, but are not necessarily normalized (due to scaling). Almost always used as an orthogonal basis for a [Transform]. - For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S). + 3×3 matrix used for 3D rotation and scale. Almost always used as an orthogonal basis for a Transform. + Contains 3 vector fields X, Y and Z as its columns, which are typically interpreted as the local basis vectors of a transformation. For such use, it is composed of a scaling and a rotation matrix, in that order (M = R.S). + Can also be accessed as array of 3D vectors. These vectors are normally orthogonal to each other, but are not necessarily normalized (due to scaling). + For more information, read the "Matrices and transforms" documentation article. + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html @@ -17,7 +20,7 @@ - Create a rotation matrix from the given quaternion. + Constructs a pure rotation basis matrix from the given quaternion. @@ -26,7 +29,8 @@ - Create a rotation matrix (in the YXZ convention: first Z, then X, and Y last) from the specified Euler angles, given in the vector format as (X angle, Y angle, Z angle). + Constructs a pure rotation basis matrix from the given Euler angles (in the YXZ convention: when *composing*, first Y, then X, and Z last), given in the vector format as (X angle, Y angle, Z angle). + Consider using the [Quat] constructor instead, which uses a quaternion instead of Euler angles. @@ -37,7 +41,7 @@ - Create a rotation matrix which rotates around the given axis by the specified angle, in radians. The axis must be a normalized vector. + Constructs a pure rotation basis matrix, rotated around the given [code]axis[/code] by [code]phi[/code], in radians. The axis must be a normalized vector. @@ -50,28 +54,30 @@ - Create a matrix from 3 axis vectors. + Constructs a basis matrix from 3 axis vectors (matrix columns). - Returns the determinant of the matrix. + Returns the determinant of the basis matrix. If the basis is uniformly scaled, its determinant is the square of the scale. + A negative determinant means the basis has a negative scale. A zero determinant means the basis isn't invertible, and is usually considered invalid. - Returns the basis's rotation in the form of Euler angles (in the YXZ convention: first Z, then X, and Y last). The returned vector contains the rotation angles in the format (X angle, Y angle, Z angle). See [method get_rotation_quat] if you need a quaternion instead. + Returns the basis's rotation in the form of Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last). The returned vector contains the rotation angles in the format (X angle, Y angle, Z angle). + Consider using the [method get_rotation_quat] method instead, which returns a [Quat] quaternion instead of Euler angles. - This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index of the point best representing the orientation of the object. It is mainly used by the grid map editor. For further details, refer to the Godot source code. + This function considers a discretization of rotations into 24 points on unit sphere, lying along the vectors (x,y,z) with each component being either -1, 0, or 1, and returns the index of the point best representing the orientation of the object. It is mainly used by the [GridMap] editor. For further details, refer to the Godot source code. @@ -193,25 +199,26 @@ - Returns a vector transformed (multiplied) by the transposed matrix. + Returns a vector transformed (multiplied) by the transposed basis matrix. [b]Note:[/b] This results in a multiplication by the inverse of the matrix only if it represents a rotation-reflection. - The basis matrix's X vector. + The basis matrix's X vector (column 0). Equivalent to array index [code]0[/code]. - The basis matrix's Y vector. + The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/code]. - The basis matrix's Z vector. + The basis matrix's Z vector (column 2). Equivalent to array index [code]2[/code]. - The identity basis. This is identical to calling [code]Basis()[/code] without any parameters. This constant can be used to make your code clearer. + The identity basis, with no rotation or scaling applied. + This is identical to calling [code]Basis()[/code] without any parameters. This constant can be used to make your code clearer, and for consistency with C#. The basis that will flip something along the X axis when used in a transformation. diff --git a/doc/classes/Color.xml b/doc/classes/Color.xml index 17b474531e..240e70db9f 100644 --- a/doc/classes/Color.xml +++ b/doc/classes/Color.xml @@ -1,10 +1,10 @@ - Color in RGBA format with some support for ARGB format. + Color in RGBA format using floats on the range of 0 to 1. - A color is represented by red, green, and blue [code](r, g, b)[/code] components. Additionally, [code]a[/code] represents the alpha component, often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as [member CanvasItem.modulate]) may accept values greater than 1. + A color represented by red, green, blue, and alpha (RGBA) components. The alpha component is often used for transparency. Values are in floating-point and usually range from 0 to 1. Some properties (such as CanvasItem.modulate) may accept values greater than 1 (overbright or HDR colors). You can also create a color from standardized color names by using [method @GDScript.ColorN] or directly using the color constants defined here. The standardized color set is based on the [url=https://en.wikipedia.org/wiki/X11_color_names]X11 color names[/url]. If you want to supply values in a range of 0 to 255, you should use [method @GDScript.Color8]. [b]Note:[/b] In a boolean context, a Color will evaluate to [code]false[/code] if it's equal to [code]Color(0, 0, 0, 1)[/code] (opaque black). Otherwise, a Color will always evaluate to [code]true[/code]. @@ -277,37 +277,37 @@ - Alpha value (range 0 to 1). + The color's alpha (transparency) component, typically on the range of 0 to 1. - Alpha value (range 0 to 255). + Wrapper for [member a] that uses the range 0 to 255 instead of 0 to 1. - Blue value (range 0 to 1). + The color's blue component, typically on the range of 0 to 1. - Blue value (range 0 to 255). + Wrapper for [member b] that uses the range 0 to 255 instead of 0 to 1. - Green value (range 0 to 1). + The color's green component, typically on the range of 0 to 1. - Green value (range 0 to 255). + Wrapper for [member g] that uses the range 0 to 255 instead of 0 to 1. - HSV hue value (range 0 to 1). + The HSV hue of this color, on the range 0 to 1. - Red value (range 0 to 1). + The color's red component, typically on the range of 0 to 1. - Red value (range 0 to 255). + Wrapper for [member r] that uses the range 0 to 255 instead of 0 to 1. - HSV saturation value (range 0 to 1). + The HSV saturation of this color, on the range 0 to 1. - HSV value (range 0 to 1). + The HSV value (brightness) of this color, on the range 0 to 1. diff --git a/doc/classes/Plane.xml b/doc/classes/Plane.xml index 292acd8b5d..ce0680523c 100644 --- a/doc/classes/Plane.xml +++ b/doc/classes/Plane.xml @@ -65,13 +65,6 @@ Returns the shortest distance from the plane to the position [code]point[/code]. - - - - - Returns a point on the plane. - - @@ -80,7 +73,7 @@ - Returns [code]true[/code] if [code]point[/code] is inside the plane (by a very minimum [code]epsilon[/code] threshold). + Returns [code]true[/code] if [code]point[/code] is inside the plane. Comparison uses a custom minimum [code]epsilon[/code] threshold. @@ -147,36 +140,38 @@ - Returns the orthogonal projection of point [code]p[/code] into a point in the plane. + Returns the orthogonal projection of [code]point[/code] into a point in the plane. - Distance from the origin to the plane, in the direction of [member normal]. + The distance from the origin to the plane, in the direction of [member normal]. This value is typically non-negative. + In the scalar equation of the plane [code]ax + by + cz = d[/code], this is [code]d[/code], while the [code](a, b, c)[/code] coordinates are represented by the [member normal] property. - The normal of the plane. "Over" or "Above" the plane is considered the side of the plane towards where the normal is pointing. + The normal of the plane, which must be normalized. + In the scalar equation of the plane [code]ax + by + cz = d[/code], this is the vector [code](a, b, c)[/code], where [code]d[/code] is the [member d] property. - The [member normal]'s X component. + The X component of the plane's [member normal] vector. - The [member normal]'s Y component. + The Y component of the plane's [member normal] vector. - The [member normal]'s Z component. + The Z component of the plane's [member normal] vector. - A plane that extends in the Y and Z axes. + A plane that extends in the Y and Z axes (normal vector points +X). - A plane that extends in the X and Z axes. + A plane that extends in the X and Z axes (normal vector points +Y). - A plane that extends in the X and Y axes. + A plane that extends in the X and Y axes (normal vector points +Z). diff --git a/doc/classes/Quat.xml b/doc/classes/Quat.xml index 327fa882e5..730edb00d9 100644 --- a/doc/classes/Quat.xml +++ b/doc/classes/Quat.xml @@ -4,9 +4,9 @@ Quaternion. - A unit quaternion used for representing 3D rotations. - It is similar to [Basis], which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. But due to its compactness and the way it is stored in memory, certain operations (obtaining axis-angle and performing SLERP, in particular) are more efficient and robust against floating-point errors. - Quaternions need to be (re)normalized. + A unit quaternion used for representing 3D rotations. Quaternions need to be normalized to be used for rotation. + It is similar to Basis, which implements matrix representation of rotations, and can be parametrized using both an axis-angle pair or Euler angles. Basis stores rotation, scale, and shearing, while Quat only stores rotation. + Due to its compactness and the way it is stored in memory, certain operations (obtaining axis-angle and performing SLERP, in particular) are more efficient and robust against floating-point errors. https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html#interpolating-with-quaternions @@ -18,7 +18,7 @@ - Returns the rotation matrix corresponding to the given quaternion. + Constructs a quaternion from the given [Basis]. @@ -27,7 +27,7 @@ - Returns a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle). + Constructs a quaternion that will perform a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle). @@ -38,7 +38,7 @@ - Returns a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector. + Constructs a quaternion that will rotate around the given axis by the specified angle. The axis must be a normalized vector. @@ -53,7 +53,7 @@ - Returns a quaternion defined by these values. + Constructs a quaternion defined by the given values. @@ -68,7 +68,7 @@ - Performs a cubic spherical-linear interpolation with another quaternion. + Performs a cubic spherical interpolation between quaternions [code]preA[/code], this vector, [code]b[/code], and [code]postB[/code], by the given amount [code]t[/code]. @@ -84,7 +84,7 @@ - Returns Euler angles (in the YXZ convention: first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X angle, Y angle, Z angle). + Returns Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last) corresponding to the rotation represented by the unit quaternion. Returned vector contains the rotation angles in the format (X angle, Y angle, Z angle). @@ -148,7 +148,7 @@ - Sets the quaternion to a rotation specified by Euler angles (in the YXZ convention: first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle). + Sets the quaternion to a rotation specified by Euler angles (in the YXZ convention: when decomposing, first Z, then X, and Y last), given in the vector format as (X angle, Y angle, Z angle). @@ -159,7 +159,8 @@ - Performs a spherical-linear interpolation with another quaternion. + Returns the result of the spherical linear interpolation between this quaternion and [code]to[/code] by amount [code]weight[/code]. + [b]Note:[/b] Both quaternions must be normalized. @@ -170,7 +171,7 @@ - Performs a spherical-linear interpolation with another quaterion without checking if the rotation path is not bigger than 90°. + Returns the result of the spherical linear interpolation between this quaternion and [code]to[/code] by amount [code]weight[/code], but without checking if the rotation path is not bigger than 90 degrees. @@ -179,27 +180,31 @@ - Transforms the vector [code]v[/code] by this quaternion. + Returns a vector transformed (multiplied) by this quaternion. - W component of the quaternion. + W component of the quaternion (real part). + Quaternion components should usually not be manipulated directly. - X component of the quaternion. + X component of the quaternion (imaginary [code]i[/code] axis part). + Quaternion components should usually not be manipulated directly. - Y component of the quaternion. + Y component of the quaternion (imaginary [code]j[/code] axis part). + Quaternion components should usually not be manipulated directly. - Z component of the quaternion. + Z component of the quaternion (imaginary [code]k[/code] axis part). + Quaternion components should usually not be manipulated directly. - The identity rotation. Equivalent to an identity matrix. If a vector is transformed by an identity quaternion, it will not change. + The identity quaternion, representing no rotation. Equivalent to an identity [Basis] matrix. If a vector is transformed by an identity quaternion, it will not change. diff --git a/doc/classes/Rect2.xml b/doc/classes/Rect2.xml index dbf461cdf1..8599aad95e 100644 --- a/doc/classes/Rect2.xml +++ b/doc/classes/Rect2.xml @@ -171,13 +171,14 @@ - Ending corner. + Ending corner. This is calculated as [code]position + size[/code]. Setting this value will change the size. - Position (starting corner). + Beginning corner. Typically has values lower than [member end]. - Size from position to end. + Size from [member position] to [member end]. Typically all components are positive. + If the size is negative, you can use [method abs] to fix it. diff --git a/doc/classes/Rect2i.xml b/doc/classes/Rect2i.xml index f3a7ba0476..7362580c02 100644 --- a/doc/classes/Rect2i.xml +++ b/doc/classes/Rect2i.xml @@ -160,13 +160,14 @@ - Ending corner. + Ending corner. This is calculated as [code]position + size[/code]. Setting this value will change the size. - Position (starting corner). + Beginning corner. Typically has values lower than [member end]. - Size from position to end. + Size from [member position] to [member end]. Typically all components are positive. + If the size is negative, you can use [method abs] to fix it. diff --git a/doc/classes/Transform.xml b/doc/classes/Transform.xml index 4175f01eb4..26c190bfa9 100644 --- a/doc/classes/Transform.xml +++ b/doc/classes/Transform.xml @@ -4,10 +4,12 @@ 3D transformation (3×4 matrix). - Represents one or many transformations in 3D space such as translation, rotation, or scaling. It consists of a [member basis] and an [member origin]. It is similar to a 3×4 matrix. + 3×4 matrix (3 rows, 4 columns) used for 3D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a [member basis] (first 3 columns) and a [Vector3] for the [member origin] (last column). + For more information, read the "Matrices and transforms" documentation article. https://docs.godotengine.org/en/latest/tutorials/math/index.html + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html https://docs.godotengine.org/en/latest/tutorials/3d/using_transforms.html @@ -23,7 +25,7 @@ - Constructs the Transform from four [Vector3]. Each axis corresponds to local basis vectors (some of which may be scaled). + Constructs a Transform from four [Vector3] values (matrix columns). Each axis corresponds to local basis vectors (some of which may be scaled). @@ -34,7 +36,7 @@ - Constructs the Transform from a [Basis] and [Vector3]. + Constructs a Transform from a [Basis] and [Vector3]. @@ -43,7 +45,7 @@ - Constructs the Transform from a [Transform2D]. + Constructs a Transform from a [Transform2D]. @@ -52,7 +54,7 @@ - Constructs the Transform from a [Quat]. The origin will be Vector3(0, 0, 0). + Constructs a Transform from a [Quat]. The origin will be [code]Vector3(0, 0, 0)[/code]. @@ -79,7 +81,7 @@ - Interpolates the transform to other Transform by weight amount (0-1). + Interpolates the transform to other Transform by weight amount (on the range of 0.0 to 1.0). @@ -172,7 +174,7 @@ The basis is a matrix containing 3 [Vector3] as its columns: X axis, Y axis, and Z axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object. - The translation offset of the transform. + The translation offset of the transform (column 3, the fourth column). Equivalent to array index [code]3[/code]. diff --git a/doc/classes/Transform2D.xml b/doc/classes/Transform2D.xml index af93d4c654..f630df7afe 100644 --- a/doc/classes/Transform2D.xml +++ b/doc/classes/Transform2D.xml @@ -1,12 +1,14 @@ - 2D transformation (3×2 matrix). + 2D transformation (2×3 matrix). - Represents one or many transformations in 2D space such as translation, rotation, or scaling. It consists of two [member x] and [member y] [Vector2]s and an [member origin]. It is similar to a 3×2 matrix. + 2×3 matrix (2 rows, 3 columns) used for 2D linear transformations. It can represent transformations such as translation, rotation, or scaling. It consists of a three [Vector2] values: [member x], [member y], and the [member origin]. + For more information, read the "Matrices and transforms" documentation article. + https://docs.godotengine.org/en/latest/tutorials/math/matrices_and_transforms.html @@ -28,7 +30,7 @@ - Constructs the transform from 3 [Vector2]s representing x, y, and origin. + Constructs the transform from 3 [Vector2] values representing [member x], [member y], and the [member origin] (the three column vectors). @@ -46,7 +48,7 @@ - Returns the inverse of the matrix. + Returns the inverse of the transform, under the assumption that the transformation is composed of rotation, scaling and translation. @@ -55,7 +57,8 @@ - Transforms the given vector by this transform's basis (no translation). + Returns a vector transformed (multiplied) by the basis matrix. + This method does not account for translation (the origin vector). @@ -64,7 +67,8 @@ - Inverse-transforms the given vector by this transform's basis (no translation). + Returns a vector transformed (multiplied) by the inverse basis matrix. + This method does not account for translation (the origin vector). @@ -96,14 +100,14 @@ - Returns a transform interpolated between this transform and another by a given weight (0-1). + Returns a transform interpolated between this transform and another by a given weight (on the range of 0.0 to 1.0). - Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use affine_inverse for transforms with scaling). + Returns the inverse of the transform, under the assumption that the transformation is composed of rotation and translation (no scaling, use [method affine_inverse] for transforms with scaling). @@ -119,7 +123,7 @@ - Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors. + Returns the transform with the basis orthogonal (90 degrees), and normalized axis vectors (scale of 1 or -1). @@ -171,24 +175,24 @@ - The transform's translation offset. + The origin vector (column 2, the third column). Equivalent to array index [code]2[/code]. The origin vector represents translation. - The X axis of 2×2 basis matrix containing 2 [Vector2]s as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object. + The basis matrix's X vector (column 0). Equivalent to array index [code]0[/code]. - The Y axis of 2×2 basis matrix containing 2 [Vector2]s as its columns: X axis and Y axis. These vectors can be interpreted as the basis vectors of local coordinate system traveling with the object. + The basis matrix's Y vector (column 1). Equivalent to array index [code]1[/code]. - [Transform2D] with no translation, rotation or scaling applied. When applied to other data structures, [constant IDENTITY] performs no transformation. + The identity [Transform2D] with no translation, rotation or scaling applied. When applied to other data structures, [constant IDENTITY] performs no transformation. - [Transform2D] with mirroring applied parallel to the X axis. + The [Transform2D] that will flip something along the X axis. - [Transform2D] with mirroring applied parallel to the Y axis. + The [Transform2D] that will flip something along the Y axis. diff --git a/doc/classes/Vector2.xml b/doc/classes/Vector2.xml index c97f99cfaa..c0d8628d88 100644 --- a/doc/classes/Vector2.xml +++ b/doc/classes/Vector2.xml @@ -43,7 +43,7 @@ - Returns the vector's angle in radians with respect to the X axis, or [code](1, 0)[/code] vector. + Returns this vector's angle with respect to the X axis, or [code](1, 0)[/code] vector, in radians. Equivalent to the result of [method @GDScript.atan2] when called with the vector's [member y] and [member x] as parameters: [code]atan2(y, x)[/code]. @@ -53,7 +53,7 @@ - Returns the angle in radians between the two vectors. + Returns the angle to the given vector, in radians. @@ -62,14 +62,14 @@ - Returns the angle in radians between the line connecting the two points and the X coordinate. + Returns the angle between the line connecting the two points and the X axis, in radians. - Returns the ratio of [member x] to [member y]. + Returns the aspect ratio of this vector, the ratio of [member x] to [member y]. @@ -85,7 +85,7 @@ - Returns the vector with all components rounded up. + Returns the vector with all components rounded up (towards positive infinity). @@ -94,7 +94,7 @@ - Returns the vector with a maximum length. + Returns the vector with a maximum length by limiting its length to [code]length[/code]. @@ -103,7 +103,7 @@ - Returns the 2-dimensional analog of the cross product with the given vector. + Returns the cross product of this vector and [code]with[/code]. @@ -118,7 +118,7 @@ - Cubically interpolates between this vector and [code]b[/code] using [code]pre_a[/code] and [code]post_b[/code] as handles, and returns the result at position [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. + Cubically interpolates between this vector and [code]b[/code] using [code]pre_a[/code] and [code]post_b[/code] as handles, and returns the result at position [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. @@ -136,7 +136,8 @@ - Returns the squared distance to vector [code]b[/code]. Prefer this function over [method distance_to] if you need to sort vectors or need the squared distance for some formula. + Returns the squared distance between this vector and [code]b[/code]. + This method runs faster than [method distance_to], so prefer it if you need to compare vectors or need the squared distance for some formula. @@ -145,7 +146,7 @@ - Returns the distance to vector [code]b[/code]. + Returns the distance between this vector and [code]to[/code]. @@ -154,7 +155,7 @@ - Returns the dot product with vector [code]b[/code]. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player. + Returns the dot product of this vector and [code]with[/code]. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player. The dot product will be [code]0[/code] for a straight angle (90 degrees), greater than 0 for angles narrower than 90 degrees and lower than 0 for angles wider than 90 degrees. When using unit (normalized) vectors, the result will always be between [code]-1.0[/code] (180 degree angle) when the vectors are facing opposite directions, and [code]1.0[/code] (0 degree angle) when the vectors are aligned. [b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]. @@ -164,7 +165,7 @@ - Returns the vector with all components rounded down. + Returns the vector with all components rounded down (towards negative infinity). @@ -180,21 +181,22 @@ - Returns [code]true[/code] if the vector is normalized. + Returns [code]true[/code] if the vector is normalized, and false otherwise. - Returns the vector's length. + Returns the length (magnitude) of this vector. - Returns the vector's length squared. Prefer this method over [method length] if you need to sort vectors or need the squared length for some formula. + Returns the squared length (squared magnitude) of this vector. + This method runs faster than [method length], so prefer it if you need to compare vectors or need the squared distance for some formula. @@ -205,7 +207,7 @@ - Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. + Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. @@ -232,7 +234,7 @@ - Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]mod[/code]. + Returns a vector composed of the [method @GDScript.fposmod] of this vector's components and [code]mod[/code]. @@ -241,7 +243,7 @@ - Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]modv[/code]'s components. + Returns a vector composed of the [method @GDScript.fposmod] of this vector's components and [code]modv[/code]'s components. @@ -282,7 +284,7 @@ - Returns the vector with each component set to one or negative one, depending on the signs of the components. + Returns the vector with each component set to one or negative one, depending on the signs of the components, or zero if the component is zero, by calling [method @GDScript.sign] on each component. @@ -293,7 +295,7 @@ - Returns the result of spherical linear interpolation between this vector and [code]b[/code], by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. + Returns the result of spherical linear interpolation between this vector and [code]b[/code], by amount [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. [b]Note:[/b] Both vectors must be normalized. @@ -303,7 +305,7 @@ - Returns the component of the vector along a plane defined by the given normal. + Returns this vector slid along a plane defined by the given normal. @@ -312,14 +314,14 @@ - Returns the vector snapped to a grid with the given size. + Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. - Returns a perpendicular vector. + Returns a perpendicular vector rotated 90 degrees counter-clockwise compared to the original, with the same length. @@ -339,25 +341,25 @@ Enumerated value for the Y axis. - Zero vector. + Zero vector, a vector with all components set to [code]0[/code]. - One vector. + One vector, a vector with all components set to [code]1[/code]. - Infinity vector. + Infinity vector, a vector with all components set to [constant @GDScript.INF]. - Left unit vector. + Left unit vector. Represents the direction of left. - Right unit vector. + Right unit vector. Represents the direction of right. - Up unit vector. + Up unit vector. Y is down in 2D, so this vector points -Y. - Down unit vector. + Down unit vector. Y is down in 2D, so this vector points +Y. diff --git a/doc/classes/Vector2i.xml b/doc/classes/Vector2i.xml index 2f7ca985b2..d03db712fc 100644 --- a/doc/classes/Vector2i.xml +++ b/doc/classes/Vector2i.xml @@ -70,22 +70,22 @@ Enumerated value for the Y axis. - Zero vector. + Zero vector, a vector with all components set to [code]0[/code]. - One vector. + One vector, a vector with all components set to [code]1[/code]. - Left unit vector. + Left unit vector. Represents the direction of left. - Right unit vector. + Right unit vector. Represents the direction of right. - Up unit vector. + Up unit vector. Y is down in 2D, so this vector points -Y. - Down unit vector. + Down unit vector. Y is down in 2D, so this vector points +Y. diff --git a/doc/classes/Vector3.xml b/doc/classes/Vector3.xml index 7ba8cb5eed..776dfd929e 100644 --- a/doc/classes/Vector3.xml +++ b/doc/classes/Vector3.xml @@ -47,7 +47,7 @@ - Returns the minimum angle to the given vector. + Returns the minimum angle to the given vector, in radians. @@ -63,7 +63,7 @@ - Returns a new vector with all components rounded up. + Returns a new vector with all components rounded up (towards positive infinity). @@ -72,7 +72,7 @@ - Returns the cross product with [code]b[/code]. + Returns the cross product of this vector and [code]b[/code]. @@ -87,7 +87,7 @@ - Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by the given amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. + Performs a cubic interpolation between vectors [code]pre_a[/code], [code]a[/code], [code]b[/code], [code]post_b[/code] ([code]a[/code] is current), by the given amount [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. @@ -105,7 +105,8 @@ - Returns the squared distance to [code]b[/code]. Prefer this function over [method distance_to] if you need to sort vectors or need the squared distance for some formula. + Returns the squared distance between this vector and [code]b[/code]. + This method runs faster than [method distance_to], so prefer it if you need to compare vectors or need the squared distance for some formula. @@ -114,7 +115,7 @@ - Returns the distance to [code]b[/code]. + Returns the distance between this vector and [code]b[/code]. @@ -123,7 +124,7 @@ - Returns the dot product with vector [code]b[/code]. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player. + Returns the dot product of this vector and [code]b[/code]. This can be used to compare the angle between two vectors. For example, this can be used to determine whether an enemy is facing the player. The dot product will be [code]0[/code] for a straight angle (90 degrees), greater than 0 for angles narrower than 90 degrees and lower than 0 for angles wider than 90 degrees. When using unit (normalized) vectors, the result will always be between [code]-1.0[/code] (180 degree angle) when the vectors are facing opposite directions, and [code]1.0[/code] (0 degree angle) when the vectors are aligned. [b]Note:[/b] [code]a.dot(b)[/code] is equivalent to [code]b.dot(a)[/code]. @@ -133,7 +134,7 @@ - Returns a new vector with all components rounded down. + Returns a new vector with all components rounded down (towards negative infinity). @@ -156,21 +157,22 @@ - Returns [code]true[/code] if the vector is normalized. + Returns [code]true[/code] if the vector is normalized, and false otherwise. - Returns the vector's length. + Returns the length (magnitude) of this vector. - Returns the vector's length squared. Prefer this function over [method length] if you need to sort vectors or need the squared length for some formula. + Returns the squared length (squared magnitude) of this vector. + This method runs faster than [method length], so prefer it if you need to compare vectors or need the squared distance for some formula. @@ -181,21 +183,21 @@ - Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation.. + Returns the result of the linear interpolation between this vector and [code]b[/code] by amount [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. - Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. + Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. - Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. + Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. @@ -206,7 +208,7 @@ - Moves the vector toward [code]to[/code] by the fixed [code]delta[/code] amount. + Moves this vector toward [code]to[/code] by the fixed [code]delta[/code] amount. @@ -231,7 +233,7 @@ - Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]mod[/code]. + Returns a vector composed of the [method @GDScript.fposmod] of this vector's components and [code]mod[/code]. @@ -240,7 +242,7 @@ - Returns a vector composed of the [code]fposmod[/code] of this vector's components and [code]modv[/code]'s components. + Returns a vector composed of the [method @GDScript.fposmod] of this vector's components and [code]modv[/code]'s components. @@ -249,7 +251,7 @@ - Returns the vector projected onto the vector [code]b[/code]. + Returns this vector projected onto another vector [code]b[/code]. @@ -258,7 +260,7 @@ - Returns the vector reflected from a plane defined by the given normal. + Returns this vector reflected from a plane defined by the given normal. @@ -269,21 +271,21 @@ - Rotates the vector around a given axis by [code]phi[/code] radians. The axis must be a normalized vector. + Rotates this vector around a given axis by [code]phi[/code] radians. The axis must be a normalized vector. - Returns the vector with all components rounded to the nearest integer, with halfway cases rounded away from zero. + Returns this vector with all components rounded to the nearest integer, with halfway cases rounded away from zero. - Returns the vector with each component set to one or negative one, depending on the signs of the components. + Returns a vector with each component set to one or negative one, depending on the signs of this vector's components, or zero if the component is zero, by calling [method @GDScript.sign] on each component. @@ -294,7 +296,7 @@ - Returns the result of spherical linear interpolation between this vector and [code]b[/code], by amount [code]t[/code]. [code]t[/code] is in the range of [code]0.0 - 1.0[/code], representing the amount of interpolation. + Returns the result of spherical linear interpolation between this vector and [code]b[/code], by amount [code]t[/code]. [code]t[/code] is on the range of 0.0 to 1.0, representing the amount of interpolation. [b]Note:[/b] Both vectors must be normalized. @@ -304,7 +306,7 @@ - Returns the component of the vector along a plane defined by the given normal. + Returns this vector slid along a plane defined by the given normal. @@ -313,7 +315,7 @@ - Returns the vector snapped to a grid with the given size. + Returns this vector with each component snapped to the nearest multiple of [code]step[/code]. This can also be used to round to an arbitrary number of decimals. @@ -321,6 +323,7 @@ Returns a diagonal matrix with the vector as main diagonal. + This is equivalent to a Basis with no rotation or shearing and this vector's components set as the scale. @@ -346,19 +349,19 @@ Enumerated value for the Z axis. Returned by [method max_axis] and [method min_axis]. - Zero vector. + Zero vector, a vector with all components set to [code]0[/code]. - One vector. + One vector, a vector with all components set to [code]1[/code]. - Infinity vector. + Infinity vector, a vector with all components set to [constant @GDScript.INF]. - Left unit vector. + Left unit vector. Represents the local direction of left, and the global direction of west. - Right unit vector. + Right unit vector. Represents the local direction of right, and the global direction of east. Up unit vector. @@ -367,10 +370,10 @@ Down unit vector. - Forward unit vector. + Forward unit vector. Represents the local direction of forward, and the global direction of north. - Back unit vector. + Back unit vector. Represents the local direction of back, and the global direction of south. diff --git a/doc/classes/Vector3i.xml b/doc/classes/Vector3i.xml index 91d64ea609..94551e1c2f 100644 --- a/doc/classes/Vector3i.xml +++ b/doc/classes/Vector3i.xml @@ -38,14 +38,14 @@ - Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. + Returns the axis of the vector's largest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_X]. - Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. + Returns the axis of the vector's smallest value. See [code]AXIS_*[/code] constants. If all components are equal, this method returns [constant AXIS_Z]. @@ -78,16 +78,16 @@ Enumerated value for the Z axis. - Zero vector. + Zero vector, a vector with all components set to [code]0[/code]. - One vector. + One vector, a vector with all components set to [code]1[/code]. - Left unit vector. + Left unit vector. Represents the local direction of left, and the global direction of west. - Right unit vector. + Right unit vector. Represents the local direction of right, and the global direction of east. Up unit vector. @@ -96,10 +96,10 @@ Down unit vector. - Forward unit vector. + Forward unit vector. Represents the local direction of forward, and the global direction of north. - Back unit vector. + Back unit vector. Represents the local direction of back, and the global direction of south. diff --git a/modules/gdnative/gdnative/aabb.cpp b/modules/gdnative/gdnative/aabb.cpp index 7f22c7dfe3..d5970e8004 100644 --- a/modules/gdnative/gdnative/aabb.cpp +++ b/modules/gdnative/gdnative/aabb.cpp @@ -81,6 +81,13 @@ godot_string GDAPI godot_aabb_as_string(const godot_aabb *p_self) { return ret; } +godot_aabb GDAPI godot_aabb_abs(const godot_aabb *p_self) { + godot_aabb dest; + const AABB *self = (const AABB *)p_self; + *((AABB *)&dest) = self->abs(); + return dest; +} + godot_real GDAPI godot_aabb_get_area(const godot_aabb *p_self) { const AABB *self = (const AABB *)p_self; return self->get_area(); diff --git a/modules/gdnative/gdnative/plane.cpp b/modules/gdnative/gdnative/plane.cpp index 663937f906..d4ed8d00f4 100644 --- a/modules/gdnative/gdnative/plane.cpp +++ b/modules/gdnative/gdnative/plane.cpp @@ -79,13 +79,6 @@ godot_vector3 GDAPI godot_plane_center(const godot_plane *p_self) { return dest; } -godot_vector3 GDAPI godot_plane_get_any_point(const godot_plane *p_self) { - godot_vector3 dest; - const Plane *self = (const Plane *)p_self; - *((Vector3 *)&dest) = self->get_any_point(); - return dest; -} - godot_bool GDAPI godot_plane_is_point_over(const godot_plane *p_self, const godot_vector3 *p_point) { const Plane *self = (const Plane *)p_self; const Vector3 *point = (const Vector3 *)p_point; diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index eb122089b6..9852928d22 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -53,6 +53,13 @@ ["const godot_aabb *", "p_self"] ] }, + { + "name": "godot_aabb_abs", + "return_type": "godot_aabb", + "arguments": [ + ["const godot_aabb *", "p_self"] + ] + }, { "name": "godot_aabb_get_area", "return_type": "godot_real", @@ -2980,13 +2987,6 @@ ["const godot_plane *", "p_self"] ] }, - { - "name": "godot_plane_get_any_point", - "return_type": "godot_vector3", - "arguments": [ - ["const godot_plane *", "p_self"] - ] - }, { "name": "godot_plane_is_point_over", "return_type": "godot_bool", diff --git a/modules/gdnative/include/gdnative/aabb.h b/modules/gdnative/include/gdnative/aabb.h index 9f41e9d4c6..c776297944 100644 --- a/modules/gdnative/include/gdnative/aabb.h +++ b/modules/gdnative/include/gdnative/aabb.h @@ -69,6 +69,8 @@ void GDAPI godot_aabb_set_size(const godot_aabb *p_self, const godot_vector3 *p_ godot_string GDAPI godot_aabb_as_string(const godot_aabb *p_self); +godot_aabb GDAPI godot_aabb_abs(const godot_aabb *p_self); + godot_real GDAPI godot_aabb_get_area(const godot_aabb *p_self); godot_bool GDAPI godot_aabb_has_no_area(const godot_aabb *p_self); diff --git a/modules/gdnative/include/gdnative/plane.h b/modules/gdnative/include/gdnative/plane.h index b759a8cc1a..9843056489 100644 --- a/modules/gdnative/include/gdnative/plane.h +++ b/modules/gdnative/include/gdnative/plane.h @@ -68,8 +68,6 @@ godot_plane GDAPI godot_plane_normalized(const godot_plane *p_self); godot_vector3 GDAPI godot_plane_center(const godot_plane *p_self); -godot_vector3 GDAPI godot_plane_get_any_point(const godot_plane *p_self); - godot_bool GDAPI godot_plane_is_point_over(const godot_plane *p_self, const godot_vector3 *p_point); godot_real GDAPI godot_plane_distance_to(const godot_plane *p_self, const godot_vector3 *p_point); diff --git a/modules/gdscript/doc_classes/@GDScript.xml b/modules/gdscript/doc_classes/@GDScript.xml index f04cb4b4c3..36de66ea52 100644 --- a/modules/gdscript/doc_classes/@GDScript.xml +++ b/modules/gdscript/doc_classes/@GDScript.xml @@ -52,7 +52,7 @@ - Returns the absolute value of parameter [code]s[/code] (i.e. unsigned value, works for integer and float). + Returns the absolute value of parameter [code]s[/code] (i.e. positive value). [codeblock] # a is 1 a = abs(-1) @@ -112,7 +112,7 @@ Returns the arc tangent of [code]s[/code] in radians. Use it to get the angle from an angle's tangent in trigonometry: [code]atan(tan(angle)) == angle[/code]. - The method cannot know in which quadrant the angle should fall. See [method atan2] if you always want an exact angle. + The method cannot know in which quadrant the angle should fall. See [method atan2] if you have both [code]y[code] and [code]x[/code]. [codeblock] a = atan(0.5) # a is 0.463648 [/codeblock] @@ -127,6 +127,7 @@ Returns the arc tangent of [code]y/x[/code] in radians. Use to get the angle of tangent [code]y/x[/code]. To compute the value, the method takes into account the sign of both arguments in order to determine the quadrant. + Important note: The Y coordinate comes first, by convention. [codeblock] a = atan2(0, -1) # a is 3.141593 [/codeblock] @@ -161,7 +162,7 @@ - Rounds [code]s[/code] upward, returning the smallest integral value that is not less than [code]s[/code]. + Rounds [code]s[/code] upward (towards positive infinity), returning the smallest whole number that is not less than [code]s[/code]. [codeblock] i = ceil(1.45) # i is 2 i = ceil(1.001) # i is 2 @@ -283,7 +284,7 @@ - Returns degrees converted to radians. + Converts an angle expressed in degrees to radians. [codeblock] # r is 3.141593 r = deg2rad(180) @@ -307,7 +308,7 @@ - Easing function, based on exponent. 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in. + Easing function, based on exponent. The curve values are: 0 is constant, 1 is linear, 0 to 1 is ease-in, 1+ is ease out. Negative values are in-out/out in. @@ -330,7 +331,7 @@ - Rounds [code]s[/code] to the closest smaller integer and returns it. + Rounds [code]s[/code] downward (towards negative infinity), returning the largest whole number that is not more than [code]s[/code]. [codeblock] # a is 2.0 a = floor(2.99) @@ -530,7 +531,7 @@ - Returns whether [code]s[/code] is a NaN (Not-A-Number) value. + Returns whether [code]s[/code] is a NaN ("Not a Number" or invalid) value. @@ -540,6 +541,7 @@ Returns [code]true[/code] if [code]s[/code] is zero or almost zero. + This method is faster than using [method is_equal_approx] with one value as zero. @@ -907,7 +909,7 @@ - Converts from radians to degrees. + Converts an angle expressed in radians to degrees. [codeblock] rad2deg(0.523599) # Returns 30 [/codeblock] @@ -1026,7 +1028,7 @@ - Returns the integral value that is nearest to [code]s[/code], with halfway cases rounded away from zero. + Rounds [code]s[/code] to the nearest whole number, with halfway cases rounded away from zero. [codeblock] round(2.6) # Returns 3 [/codeblock] @@ -1108,10 +1110,11 @@ - Returns the square root of [code]s[/code]. + Returns the square root of [code]s[/code], where [code]s[/code] is a non-negative number. [codeblock] sqrt(9) # Returns 3 [/codeblock] + If you need negative inputs, use [code]System.Numerics.Complex[/code] in C#. @@ -1312,27 +1315,19 @@ Wraps float [code]value[/code] between [code]min[/code] and [code]max[/code]. Usable for creating loop-alike behavior or infinite surfaces. [codeblock] - # a is 0.5 - a = wrapf(10.5, 0.0, 10.0) - [/codeblock] - [codeblock] - # a is 9.5 - a = wrapf(-0.5, 0.0, 10.0) - [/codeblock] - [codeblock] - # Infinite loop between 0.0 and 0.99 - f = wrapf(f + 0.1, 0.0, 1.0) + # Infinite loop between 5.0 and 9.9 + value = wrapf(value + 0.1, 5.0, 10.0) [/codeblock] [codeblock] # Infinite rotation (in radians) angle = wrapf(angle + 0.1, 0.0, TAU) [/codeblock] - [b]Note:[/b] If you just want to wrap between 0.0 and [code]n[/code] (where [code]n[/code] is a positive floating-point value), it is better for performance to use the [method fmod] method like [code]fmod(number, n)[/code]. - [code]wrapf[/code] is more flexible than using the [method fmod] approach by giving the user a simple control over the minimum value. It also fully supports negative numbers, e.g. [codeblock] # Infinite rotation (in radians) angle = wrapf(angle + 0.1, -PI, PI) [/codeblock] + [b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to [method fposmod], so prefer using that instead. + [code]wrapf[/code] is more flexible than using the [method fposmod] approach by giving the user control over the minimum value. @@ -1348,23 +1343,15 @@ Wraps integer [code]value[/code] between [code]min[/code] and [code]max[/code]. Usable for creating loop-alike behavior or infinite surfaces. [codeblock] - # a is 0 - a = wrapi(10, 0, 10) - [/codeblock] - [codeblock] - # a is 9 - a = wrapi(-1, 0, 10) - [/codeblock] - [codeblock] - # Infinite loop between 0 and 9 - frame = wrapi(frame + 1, 0, 10) + # Infinite loop between 5 and 9 + frame = wrapi(frame + 1, 5, 10) [/codeblock] - [b]Note:[/b] If you just want to wrap between 0 and [code]n[/code] (where [code]n[/code] is a positive integer value), it is better for performance to use the modulo operator like [code]number % n[/code]. - [code]wrapi[/code] is more flexible than using the modulo approach by giving the user a simple control over the minimum value. It also fully supports negative numbers, e.g. [codeblock] # result is -2 var result = wrapi(-6, -5, -1) [/codeblock] + [b]Note:[/b] If [code]min[/code] is [code]0[/code], this is equivalent to [method posmod], so prefer using that instead. + [code]wrapi[/code] is more flexible than using the [method posmod] approach by giving the user control over the minimum value. @@ -1406,17 +1393,16 @@ - Constant that represents how many times the diameter of a circle fits around its perimeter. + Constant that represents how many times the diameter of a circle fits around its perimeter. This is equivalent to [code]TAU / 2[/code]. - The circle constant, the circumference of the unit circle. + The circle constant, the circumference of the unit circle in radians. - A positive infinity. (For negative infinity, use -INF). + Positive infinity. For negative infinity, use -INF. - Macro constant that expands to an expression of type float that represents a NaN. - The NaN values are used to identify undefined or non-representable values for floating-point elements, such as the square root of negative numbers or the result of 0/0. + "Not a Number", an invalid value. [code]NaN[/code] has special properties, including that it is not equal to itself. It is output by some invalid operations, such as dividing zero by zero. diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs index 3173a21986..d851abc6d3 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Color.cs @@ -486,7 +486,7 @@ namespace Godot } /// - /// Constructs a color from RGB values on the range of 0 to 1. + /// Constructs a color from RGBA values on the range of 0 to 1. /// /// The color's red component, typically on the range of 0 to 1. /// The color's green component, typically on the range of 0 to 1. diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Plane.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Plane.cs index af0d474bae..2748454e48 100644 --- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Plane.cs +++ b/modules/mono/glue/GodotSharp/GodotSharp/Core/Plane.cs @@ -20,8 +20,9 @@ namespace Godot private Vector3 _normal; /// - /// The normal of the plane (in the plane equation: a, b, and c). - /// The normal vector must be normalized. + /// The normal of the plane, which must be normalized. + /// In the scalar equation of the plane `ax + by + cz = d`, this is + /// the vector `(a, b, c)`, where `d` is the property. /// /// Equivalent to `x`, `y`, and `z`. public Vector3 Normal @@ -81,6 +82,9 @@ namespace Godot /// /// The distance from the origin to the plane (in the direction of /// ). This value is typically non-negative. + /// In the scalar equation of the plane `ax + by + cz = d`, + /// this is `d`, while the `(a, b, c)` coordinates are represented + /// by the property. /// /// The plane's distance from the origin. public real_t D { get; set; } -- cgit v1.2.3