A Thousand Ships
9c518d5f42
[Core] Fix `rand_weighted` not using the current state
...
The method incorrectly used `Math::randf` instead of `randf`
2024-03-17 19:21:16 +01:00
Thaddeus Crews
9903e6779b
Enforce template syntax `typename` over `class`
2024-03-07 22:39:09 -06:00
A Thousand Ships
a497a5cb3e
[Core] Codestyle improvements to math types
2024-03-04 18:17:10 +01:00
David Luevano Alvarado
981883d041
Fix `RandomNumberGenerator::rand_weighted` return type
2024-03-02 20:56:01 -06:00
Rémi Verschelde
bd7637248c
Merge pull request #88883 from joaoh82/add-weighted-random-method
...
Add `RandomNumberGenerator::rand_weighted` method
2024-03-01 15:00:32 +01:00
João Henrique Machado Silva
88df5ea8ac
Add RandomNumberGenerator::rand_weighted method
2024-02-29 13:29:53 +01:00
Rémi Verschelde
3a08c646ee
Pre-commit: Update to clang-format 17.0.6 and black 24.2.0
2024-02-28 14:25:35 +01:00
Robert Yevdokimov
13e82094ee
Remove word duplicates in comments and strings, and fix casing and punctuation
2024-02-23 17:28:28 -05:00
Muller-Castro
a8bc9f3e78
Add const lvalue ref to core/* container parameters
2024-02-14 11:20:36 -03:00
A Thousand Ships
d8b29efe66
Fix member names of `AudioFrame` to match extension
2024-02-13 15:37:09 +01:00
Silc Lizard (Tokage) Renew
67e38709fd
Avoid unqualified-id "near" and "far" in Node3DEditor/Viewport
2024-02-13 18:53:21 +09:00
A Thousand Ships
684752e75b
Replace error checks against `size` with `is_empty`
2024-02-09 12:50:15 +01:00
Rémi Verschelde
fa48a51183
Merge pull request #87688 from AThousandShips/what_is_this
...
Remove unnecessary `this->` expressions
2024-01-29 13:18:09 +01:00
A Thousand Ships
15369fdb1d
Remove unnecessary `this->` expressions
2024-01-29 09:59:18 +01:00
Hugo Locurcio
0437db0106
Display values in vector/quaternion math function errors
...
This can help track down the source of the error more easily.
2024-01-28 18:45:46 +01:00
Hendrik Brucker
9d7c2978f4
Rework GraphEdit connections (drawing, API, optimizations)
...
- GraphEdit now uses Line2D nodes to draw connection lines and uses a dedicated canvas item shader for them
2024-01-18 16:53:15 +01:00
A Thousand Ships
b4191bf8f6
[Core] Fix `AABB.encloses` failing on shared upper bound
...
This differs from `Rect2(i)` and was fixed for those classes in the past
2024-01-12 17:58:42 +01:00
Rémi Verschelde
acd37f98c0
Merge pull request #83353 from Chubercik/expose_delaunay_3d
...
Expose 3D Delaunay tetrahedralization in `Geometry3D`
2024-01-04 16:39:23 +01:00
Rémi Verschelde
18e9133d5a
Merge pull request #86364 from aaronfranke/basis-divide
...
Add and expose Basis/Transform2D/3D division by float operator
2024-01-04 14:26:16 +01:00
Rémi Verschelde
bbfcfe50da
Merge pull request #81267 from Chaosus/astargrid_isometric_mode
...
Add isometric cell shape mode to `AStarGrid2D`.
2024-01-04 14:25:00 +01:00
Rémi Verschelde
22e880ad20
Merge pull request #83163 from Chubercik/vectorXi_dist_methods
...
Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2024-01-03 09:58:36 +01:00
Rémi Verschelde
8317b459df
Merge pull request #86590 from rune-scape/rune-uninitialized-astar
...
Initialize pointers in a_star.cpp
2024-01-02 18:05:48 +01:00
EddieBreeg
8747c67d9e
Fix potential integer underflow in rounded up divisions
...
A new `Math::division_round_up()` function was added, allowing for easy
and correct computation of integer divisions when the result needs to
be rounded up.
Fixes #80358 .
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-02 14:14:47 +01:00
rune-scape
b6a53e62bc
Initialize pointers in a_star.cpp
2023-12-28 13:58:11 -08:00
Aaron Franke
c77ae051d5
Add and expose Basis/Transform2D/3D division by float operator
2023-12-20 18:24:03 -06:00
Alistair Leslie-Hughes
46531964d0
Improve DynamicBVH code to make it clearer how the stack/heap works.
...
Inspired by a Coverity issue about possible memcpy usage and overlapping memory.
2023-12-13 09:03:19 +11:00
Aaron Franke
7ee273723d
Fix Basis is_orthogonal and is_rotation methods, add is_orthonormal
2023-12-06 13:12:05 -06:00
Pedro J. Estébanez
fe4850c0d0
Use mingw-std-threads in MinGW builds
2023-11-18 11:56:05 +01:00
Silc Lizard (Tokage) Renew
80c9533810
Rework blending method in Variant animation for Int/Array/String
2023-11-16 21:37:18 +09:00
Jakub Marcowski
c33e291474
Update `triangulate_delaunay()` to avoid needless reallocations
2023-10-16 12:37:57 +02:00
Jakub Marcowski
bc78c832e9
Expose 3D Delaunay tetrahedralization in `Geometry3D`
2023-10-16 11:48:49 +02:00
Jakub Marcowski
cb954c6bab
Implement `Vector2i/3i/4i` methods: `distance_to` and `distance_squared_to`
2023-10-12 13:46:49 +02:00
A Thousand Ships
034c0f1624
Replace `sanity` with `safety` for checks
2023-10-08 16:22:24 +02:00
Yuri Roubinski
04bb89c0bd
Add isometric cell shape mode to `AStarGrid2D`.
2023-10-03 21:04:03 +03:00
etti
3a39de4e2f
Add rotate_toward and angle_difference to GDScript and C#
2023-10-01 22:19:42 +02:00
风青山
e705aa4550
Fix not refitting upward from leaf nodes.
...
Previously, the wrong node id (root node id) was used. Dirty leaf nodes
do not actually recalculate aabb.
Additionally, when requesting a new leaf, mark `dirty` as `false` in `clear()`.
Make sure to only mark the leaf as **dirty** when shrinking the border of
the leaf when removing items.
In other cases, the leaf node's aabb will get the correct result immediately.
1. When adding an item, the leaf nodes will be calculated immediately.
2. Removing the item within the border of the leaf node has no effect on the
original aabb.
2023-09-28 20:27:51 +08:00
风青山
0156860ad5
Fix axis getting mixed up when split leaf
2023-09-27 17:56:12 +08:00
Rémi Verschelde
3ec673085b
Merge pull request #79523 from aaronfranke/is-conformal
...
Add `is_conformal` method to Basis and Transform2D
2023-09-26 13:44:41 +02:00
SADIK KUZU
a8ff5f086d
Fix typo in `heuristic_euclidian` helper in AStarGrid2D
2023-09-25 14:33:22 +03:00
Matthew
9f21dfbafd
Remove unnecessary line from Projection::get_z_far
...
Removes a line from Projection::get_z_far that flips the normal of a plane.
While this may be required for similar code elsewhere in the file, this is
unnecessary here, as only the length of the normal is used and not the
direction. Flipping the normal does not change its magnitude and therefore is
unnecessary in this case.
2023-09-20 10:48:37 -04:00
Danil Alexeev
1621110e2d
Core: Some code style improvements to `AStarGrid2D`
2023-09-19 17:20:38 +03:00
Aaron Franke
56806ffeed
Add `is_conformal` method to Basis and Transform2D
2023-09-13 17:20:30 -05:00
A Thousand Ships
893f889d74
[Core] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-11 19:45:49 +02:00
Yuri Sizov
d8ff69d53c
Extract ScriptInstance to simplify includes
...
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.
This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Jcrespo
528a76486c
Add inverse hyperbolic functions `asinh()`, `acosh()` & `atanh()`
...
GDScript has the following built-in trigonometry functions:
- `sin()`
- `cos()`
- `tan()`
- `asin()`
- `acos()`
- `atan()`
- `atan()`
- `sinh()`
- `cosh()`
- `tanh()`
However, it lacks the hyperbolic arc (also known as inverse
hyperbolic) functions:
- `asinh()`
- `acosh()`
- `atanh()`
Implement them by just exposing the C++ Math library, but clamping
its values to the closest real defined value.
For the cosine, clamp input values lower than 1 to 1.
In the case of the tangent, where the limit value is infinite,
clamp it to -inf or +inf.
References #78377
Fixes godotengine/godot-proposals#7110
2023-09-01 01:27:56 +02:00
Rémi Verschelde
faaf27f284
Fix various typos with codespell
...
Also includes typo fixes from #79993 , #80068 , #80276 , and #80303 .
Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-08-07 13:09:47 +02:00
Yuri Roubinski
5f56aa88f8
Add the fill region methods to the `AStarGrid2D`
2023-07-15 16:52:29 +03:00
Rémi Verschelde
e4deaa2727
Merge pull request #76787 from RedworkDE/avoid-localvector-copy
...
Avoid making unnecessary copies of `LocalVector`
2023-06-20 00:01:55 +02:00
Matthew Jensen
8b188bda52
Consider all triangles for retention in Delaunay Triangulation
2023-06-17 11:18:30 -04:00
kleonc
77b8e0fcb7
Allow setting negative WorldBoundaryShape2D.distance through the editor
2023-06-14 14:54:00 +02:00
Lyuma
9aa46bf3f5
Fix for SkeletonIK3D interpolation and bone roll
...
Fix bug in internal Basis::rotate_to_align function (also used with identity Basis in scene/resources/curve.cpp)
Use ChainItem children rather than local bone rest to determine IK bone roll to match Godot 3.x behavior
2023-06-05 20:44:45 -07:00
smix8
66a8418a2d
Remove unnecessary Clipper lib includes
...
Removes unnecessary Clipper lib includes.
2023-05-24 23:57:08 +02:00
Juan Linietsky
5fdc1232ef
Add the ability to look-at in model-space.
...
This is a much simpler attempt to solve the same problem as #76060 , but without breaking any compatibility.
* Adds a description of what model space is in the Vector3 enums (MODEL_* constants). This has the proper axes laid out for imported 3D assets.
* Adds the option to `look_at` using model_space, which uses Vector3.MODEL_FRONT as forward vector.
The attempt of this PR is to still break the assumption that there is a single direction of forward (which is not the case in Godot)
and make it easier to understand where 3D models are facing, as well as orienting them via look_at.
2023-05-24 10:10:24 +09:00
bonjorno7
283cac859c
Make ok_color functions static
...
It needs to be a class to prevent build errors, but the functions can at least be static, so you don't have to instance the class.
2023-05-13 16:57:19 +02:00
Rémi Verschelde
cc48827e4a
Merge pull request #76946 from AThousandShips/shadow_warning
...
Enable shadow warnings and fix raised errors
2023-05-12 10:04:09 +02:00
Rémi Verschelde
863bcd3e2b
Merge pull request #76936 from clayjohn/revert-hsl
...
Revert "Add API for HSL conversion"
2023-05-12 10:03:21 +02:00
Ninni Pipping
71ee65dc57
Enable shadow warnings and fix raised errors
2023-05-11 16:00:59 +02:00
lawnjelly
50c5ed4876
Make acos and asin safe
...
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.
The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-05-11 08:34:34 +01:00
clayjohn
f83a90192f
Revert "Add API for HSL conversion"
...
This reverts commit 0b7fd664c1
.
2023-05-10 17:45:56 -03:00
Rémi Verschelde
0f444f101a
Merge pull request #76661 from bonjorno7/hsl
...
Add API for HSL conversion
2023-05-09 19:28:35 +02:00
bonjorno7
0b7fd664c1
Add API for HSL conversion
...
Math ported pretty much 1:1 from https://en.wikipedia.org/wiki/HSL_and_HSV
Style doesn't match the existing HSV code exactly, but should be close enough.
2023-05-09 17:43:10 +02:00
RedworkDE
1324c7d06a
Avoid making unnecessary copies of `LocalVector`
2023-05-06 20:39:03 +02:00
Clay John
610877e326
Merge pull request #72288 from MewPurPur/use-string-repeat
...
Use `String.repeat()` to optimize several String methods
2023-05-05 09:56:48 -07:00
VolTer
6b84e258d2
Use String.repeat() in more places
2023-05-01 02:27:46 +02:00
Danil Alexeev
76ee3d4f31
Allow negative coordinates in `AStarGrid2D`
2023-04-26 09:29:33 +03:00
Aaron Franke
290b09b36c
Expose `determinant` in Transform2D, rename internal method
2023-04-22 13:44:14 -05:00
Danil Alexeev
36bedd341a
Fix misuses of error macros
2023-04-18 10:20:48 +03:00
VolTer
846f9e106c
Optimize 2D Delaunay and make it more readable
...
Co-authored-by: Dimitri Tabatadze <tabatadzedima@protonmail.com>
2023-04-09 00:52:15 +02:00
Yuri Rubinsky
d11bb866ff
Fix randfn to prevent generating of nan values
2023-03-03 16:43:48 +03:00
Rémi Verschelde
491ded1898
Minor typo and docs URL fixes
2023-02-28 13:38:01 +01:00
lawnjelly
f42a837e92
BVH - fix lockguards for multithread mode
...
Due to a lack of variable name, the BVH lock guards lifetimes previously did not cover the whole function call.
This is fixed, and the warning message for contention is removed as multithread mode seems to be desired in production in 4.x.
2023-02-20 15:15:18 +00:00
clayjohn
5a800e68f1
Bias octahedral tangent y axis to avoid errors around 0
2023-02-13 19:24:14 -08:00
Rémi Verschelde
8f46656ae4
Merge pull request #72316 from 0xafbf/component-wise-minmax
...
Added component-wise `min` and `max` functions for vectors
2023-02-11 22:05:12 +01:00
Andrés Botero
a90e151b2a
Added component-wise `min` and `max` functions for vectors
2023-02-11 15:03:11 -05:00
Rémi Verschelde
f011d8ca9c
Math: Prevent division by zero in posmod
...
Fixes #43932 .
Co-authored-by: David Hoppenbrouwers <david@salt-inc.org>
2023-02-11 20:44:45 +01:00
Silc Renew
1459b9c24c
Fix scaled_orthogonal() & subgizmo global scaling
2023-02-04 00:46:04 +09:00
Rémi Verschelde
e52213e2fa
More codespell fixes, do more changes from previous ignore list
2023-02-01 12:11:36 +01:00
Rémi Verschelde
394bb0ee2b
Fix various typos with codespell
...
Finally do the childs -> children rename too.
2023-02-01 08:45:41 +01:00
Aaron Franke
5f3d3722b2
Add support for interpolating skewed transforms
2023-01-28 18:28:42 -06:00
Yuri Rubinsky
0f8f0ab126
Merge pull request #72170 from Chaosus/astar_fix
2023-01-27 18:52:22 +03:00
Rémi Verschelde
f0e3c3f4c3
Merge pull request #72168 from RandomShaper/sensible_lock_return
...
Booleanize various sync primitives' wait & locking methods
2023-01-27 15:40:43 +01:00
Yuri Rubinsky
cc0a243ce0
Enchance the performance of AStar by using a LocalVector(2)
2023-01-27 16:28:11 +03:00
Pedro J. Estébanez
f630940591
Booleanize various sync primitives' wait & locking methods
2023-01-27 11:15:30 +01:00
bitsawer
8c25bcdb84
Fix range loop iteration regressions
2023-01-26 00:14:39 +02:00
Rémi Verschelde
5b1df48c6c
Convert en_GB spelling to en_US with codespell
2023-01-23 11:02:20 +01:00
Rémi Verschelde
5726bf578d
Merge pull request #71676 from vnen/gdscript-unicode-identifiers
...
Add support for Unicode identifiers in GDScript and Expression
2023-01-23 10:24:33 +01:00
Yuri Rubinsky
078600a3c4
Enchance the performance of `AStar` by using a `LocalVector`
2023-01-22 12:04:41 +03:00
kobewi
615c517034
Use range iterators in LocalVector loops
2023-01-21 18:44:42 +01:00
George Marques
86ee5f39c4
Add support for Unicode identifiers in Expression class
2023-01-21 13:39:42 -03:00
kobewi
c0083e431b
Cleanup unused engine code v2
2023-01-19 13:02:18 +01:00
Raul Santos
7560340ef6
Rename `center` method to `get_center` in Plane.
2023-01-15 17:18:50 +01:00
Yuri Rubinsky
6640eb8065
Fix error in `AstarGrid2D::get_id_path`
2023-01-08 10:34:33 +03:00
Yuri Rubinsky
4a45c76737
Fix jumping in `AStarGrid2D` when `DIAGONAL_MODE_NEVER` is enabled
2023-01-06 13:40:24 +03:00
Rémi Verschelde
e5f6e03490
Merge pull request #70547 from TokageItLab/pingpong-wrap
...
Fix pingpong-loop with `loop_wrap` is not working & clean-up cubic interpolation key retrieve process
2023-01-06 00:10:18 +01:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
...
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.
It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).
We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).
Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Yuri Rubinsky
b28571ca3e
Optimize `wrapf` function a bit
2023-01-01 23:17:29 +03:00
Silc Renew
8745c206c4
Fix pingpong with loop wrap is not working
2022-12-25 18:16:38 +09:00
Yuri Rubinsky
16efd0b0fc
Divide `AStarGrid2D::default_heuristic` into two different heuristics
2022-12-24 09:31:02 +03:00
Rémi Verschelde
186f6f0d87
Merge pull request #70403 from rburing/fix_edge_map_capacity
...
Fix edge map capacity in convex hull computer
2022-12-21 18:29:38 +01:00
Ricardo Buring
e0e45e013e
Fix edge map capacity in convex hull computer
...
The desired capacity could be less than the default, so reserve would
error.
2022-12-21 17:12:36 +01:00