mirror of
https://github.com/godotengine/godot.git
synced 2024-11-26 14:13:10 +00:00
Fix segment intersection in Geometry2D
Doing a multiplication to reduce the amount of tests was causing precision which lead to 2D raycast detecting false positive contacts in some cases with convex polygons.
This commit is contained in:
parent
11e03ae7f0
commit
6d0c93dccf
@ -181,8 +181,7 @@ public:
|
||||
D = Vector2(D.x * Bn.x + D.y * Bn.y, D.y * Bn.x - D.x * Bn.y);
|
||||
|
||||
// Fail if C x B and D x B have the same sign (segments don't intersect).
|
||||
// (equivalent to condition (C.y < 0 && D.y < CMP_EPSILON) || (C.y > 0 && D.y > CMP_EPSILON))
|
||||
if (C.y * D.y > CMP_EPSILON) {
|
||||
if ((C.y < -CMP_EPSILON && D.y < -CMP_EPSILON) || (C.y > CMP_EPSILON && D.y > CMP_EPSILON)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user