Age | Commit message (Collapse) | Author |
|
(cherry picked from commit bec1182093febd37362766d67b6e78895343434a)
|
|
Fix CCD in case of multiple supports in motion direction
|
|
Avoid memory corruption when GodotConvexPolygonShape3D is setup more than once
|
|
|
|
For example, an axis-aligned box under the influence of gravity landing
on a horizontal triangle could previously tunnel, because only one of
the supports of the box was considered to be the candidate point that
would collide first. Now all supports are considered as candidates.
Also fix CCD always pushing the fast body into the other body, which
works well for convex shapes but not for trimesh/concave shapes.
|
|
Changes that the default physics spaces of World resources are only created on first use.
|
|
Fix separation ray normal direction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Analytic sphere-box, sphere-cylinder, and capsule-cylinder collisions
|
|
Fix sphere-capsule collision logic
|
|
Implement collision impulse in Godot Physics 3D
|
|
|
|
Optimize GodotConvexPolygonShape3D::get_support
|
|
Add PropertyInfo overload for GLOBAL_DEF
|
|
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".
|
|
Allow to apply the angular velocity of a moving platform
|
|
Specifically this uses pointer-array-dereference rather than LocalVector<T> dereference as this performs range-checking on known-good indexes.
Added more comments. Changed loops back to classic for-iteration style.
|
|
|
|
"correct" axis which corresponds to the correct collision normal.
Added logically identical fix to the capsule/capsule collision, and verified it now produces correct collision points and normals.
Added analytic_sphere_collision helper function which reports the A and B points directly without using SAT.
Modified _collision_sphere_sphere, _collision_sphere_capsule, and _collision_capsule_capsule to use the new analytic_sphere_collision.
Fix white-space issue
Additional code formatting fixes.
Updated new analytic_sphere_collision to correctly handle null collector callback.
|
|
concave is already performed later.
|
|
At high velocities `from - motion *.1` is *behind the RB* - not within its collider as the comment suggested - so it could not be used for determining movement length
|
|
(preventing collision) or not enough (allowing tunneling)
|
|
|
|
Fix typo bug in heightmap shape
|
|
|
|
Fix typo in physics step: contraint -> constraint
|
|
Fix typo in cylinder-cylinder SAT collision solver
|
|
|
|
|
|
In GodotCapsuleShape3D::get_supports and
GodotCapsuleShape2D::get_supports, return a point instead of an edge of
length zero in case the capsule degenerates to a sphere or circle.
|
|
They are based on:
- Boolean arithmetic simplifications
- setting variables that are not accessed
- constant variables
|
|
|
|
|
|
|
|
GodotSoftBody3D.reoptimize_link_order() before proceeding. Fixes #61474
|
|
Optimized support function for large meshes
|
|
|
|
|
|
Implements the Gauss Mapping optimization to SAT convex collision test.
* Described [here](https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2013/slides/822403Gregorius_Dirk_TheSeparatingAxisTest.pdf) by Dirk Gregorius.
* Requires adding of face information to edges in MeshData
* Took the chance to convert MeshData to LocalVector for performance.
|
|
change warnings=all to use /W4.
|
|
Remove usage of unitialized variables
|
|
|
|
|
|
`GodotCylinderShape3D::get_supports`: delete dead code
|
|
|