Age | Commit message (Collapse) | Author |
|
|
|
Compiler
|
|
-Improvements to texture importer
-Proper detection of S3TC compression modes, and added all modes to Image
-Fixes to non-power of 2 compressed textures, which should all be supported by GLES3
|
|
Fix weigth scale of A* being applied to the whole estimation
|
|
Attempt to fix #8584
|
|
This is a necessary condition for finding optimal solutions.
This is achieved by simply requiring/ensuring that no weights are smaller than 1.
Fixes #8584.
|
|
|
|
|
|
Added various functions basic math classes. Also enabled math checks …
|
|
PCG32 doesn't like small seeds, which leads to zero random values (prior to #7532, zero values were handled as special cases).
Use a large default seed, and also add a shift in Math::randomize.
Fixes #8423.
|
|
|
|
|
|
|
|
for debug builds.
Added set_scale, set_rotation_euler, set_rotation_axis_angle. Addresses #2565 directly.
Added an euler angle constructor for Basis in GDScript and also exposed is_normalized for vectors and quaternions.
Various other changes mostly cosmetic in nature.
|
|
Made slide and reflect active verbs acting on itself in Vector2 and V…
|
|
This is in alignment with other functions in vector classes.
Also added checks for normalization, fixed the sign of reflect (which now corresponds to reflection along a plane mathematically), added bounce method and updated docs.
Fixes #8201.
|
|
Added ability to change A-star cost function
|
|
|
|
When performing polar decomposition in 2D as B = R.S, where R is rotation (with determinant +1) and S is scaling, use the convention that reflections are absorbed into S through a reflection around y axis.
In 3D, this is done by using a reflection along all three axes, but since the dimensionality is even in 2D, one axis needs to be chosen.
Fixes Matrix32::get_rotation and Matrix32::get_scale (which weren't properly fixed in #7445).
|
|
Use atan2 rather than acos in Vector3.angle_to.
|
|
Explicitly documented that Transform.basis is not necessarily an orth…
|
|
From https://github.com/lucasdemarchi/codespell
|
|
Fixes #8111.
|
|
matrix.
Also added a check that in axis-angle rotations, axis is a normalized vector, and modified the docs accordingly.
Fixes #8113.
|
|
I can show you the code
Pretty, with proper whitespace
Tell me, coder, now when did
You last write readable code?
I can open your eyes
Make you see your bad indent
Force you to respect the style
The core devs agreed upon
A whole new world
A new fantastic code format
A de facto standard
With some sugar
Enforced with clang-format
A whole new world
A dazzling style we all dreamed of
And when we read it through
It's crystal clear
That now we're in a whole new world of code
|
|
|
|
|
|
|
|
This fixes HashMap where a key or part of a key is a floating point
number. To fix this the following has been done:
* HashMap now takes an extra template argument Comparator. This class
gets used to compare keys. The default Comperator now works correctly
for common types and floating point numbets.
* Variant implements ::hash_compare() now. This function implements
nan-safe comparison for all types with components that contain floating
point numbers.
* Variant now has a VariantComparator which uses Variant::hash_compare()
safely compare floating point components of variant's types.
* The hash functions for floating point numbers will now normalize NaN
values so that all floating point numbers that are NaN hash to the same
value.
C++ module writers that want to use HashMap internally in their modules
can now also safeguard against this crash by defining their on
Comperator class that safely compares their types.
GDScript users, or writers of modules that don't use HashMap internally
in their modules don't need to do anything.
This fixes #7354 and fixes #6947.
|
|
|
|
|
|
After discussing this with Reduz this seemed like the best way to
fix #7354. This will make composite values that contain NaN in the same
places as well as the same other values compare as the same.
Additionally non-composite values now also compare equal if they are
both NaN. This breaks IEEE specifications but this is probably what most
users expect. There is a GDScript function check for NaN if the user
needs this information.
This fixes #7354 and probably also fixes #6947
|
|
This new name also makes its purpose a little clearer
This is a step towards fixing #56
|
|
|
|
Use real_t rather than float or double in generic functions (core/mat…
|
|
|
|
than float or double in generic functions (core/math) whenever possible.
Also inlined some more math functions.
|
|
Replace the existing PRNG (Xorshift31) with (minimal) PCG-32.
|
|
|
|
|
|
|
|
Made sure files in core/ and tools/ have a proper Godot license header
when written by us. Also renamed aabb.{cpp,h} and object_type_db.{cpp,h}
to rect3.{cpp,h} and class_db.{cpp,h} respectively.
Also added a proper header to core/io/base64.{c,h} after clarifying
the licensing with the original author (public domain).
|
|
with 32-bit output, 64-bit state).
PCG is better than many alternatives by many metrics (see www.pcg-random.org) including statistical quality with good speed.
|
|
|
|
They do not play well with clang-format which aligns the `//` part
with the rest of the code block, thus producing badly indented commented code.
|
|
naming
|
|
|
|
Matrix32 -> Transform2D
Matrix3 -> Basis
AABB -> Rect3
RawArray -> PoolByteArray
IntArray -> PoolIntArray
FloatArray -> PoolFloatArray
Vector2Array -> PoolVector2Array
Vector3Array -> PoolVector3Array
ColorArray -> PoolColorArray
|
|
Fixed inertia tensor computation and center of mass
|
|
Various corrections in 2D math.
|