Age | Commit message (Collapse) | Author |
|
|
|
[Mono] Quat - add some missing constructors and methods
|
|
|
|
|
|
Fixed bugs in expression class
|
|
|
|
|
|
We delete the faces for consideration in this loop but we can still
sometimes find an edge that connects to this face. We now interate over
all edges and disconnect edges connecting to this face.
This fixes #16560 and fixes #17569
|
|
|
|
|
|
|
|
Math2D includes Transform2D, which includes Rect2, which includes Vector2.
|
|
Math constant definitions belong in `math_defs.h`. Also, the grammer in these files really needed some updating.
|
|
|
|
Makes 2D math code easier to read and makes Vector2 consistent with Vector3. In the future, we may move other things out of math_2d as well.
|
|
|
|
|
|
-Added expression evaluation to EditorSpinSlider, fixes #20813, fixes #18932
|
|
Removed incorrect Basis::set_scale().
|
|
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
|
|
|
|
[Core] [Math] Fix fposmod() function
|
|
Change the neighbours vector to a set in AStar
|
|
This fixes an issue where one could not disconnect two points that were connected more than once.
|
|
Fixed Basis -> Quat conversions, added a few safety checks.
|
|
|
|
|
|
ffff
meth
|
|
|
|
|
|
Fixes #19027.
|
|
Also added a missing constructor in Basis, and fixed usage of inverse and affine inverse in Transform.
|
|
Also even out Basis and Quat APIs a little.
|
|
Add Geometry::line_intersects_line_2d()
|
|
Now both structs (Vector2 & Vector3) have round, floor & ceil methods.
(see #18603)
|
|
Fixes most current reports on Coverity Scan of uninitialized scalar
variable (CWE-457): https://cwe.mitre.org/data/definitions/457.html
These happen most of the time (in our code) when instanciating structs
without a constructor (or with an incomplete one), and later returning
the instance. This is sometimes intended though, as some parameters are
only used in some situations and should not be double-initialized for
performance reasons (e.g. `constant` in ShaderLanguage::Token).
|
|
Also ensure that get_scale doesn't arbitrarlity change the signs of scales, ensuring that the combination of get_rotation and get_scale gives the correct basis.
Added various missing functions and constructors.
Should close #17968.
|
|
|
|
Fixes https://github.com/godotengine/godot/issues/18025
|
|
Fix is_point_in_triangle function
|
|
|
|
Update wrap functions
|
|
|
|
|
|
|
|
|
|
The ear clipping algorithm used to triangulate polygons has a slightly too conservative point-in-triangle test which can, in some configurations prevent it from finding a possible tessellation. Relaxing the test by considering that points exactly on edges don't belong the triangle fixes the issue. Changing the semantic of the test is safe because no other code makes use of it. A more detailed explanation can be found in issue #16395.
Fixes #16395.
|
|
|
|
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
|
|
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
|