Have capsule minkowski sum work with non normalized vector #501
This commit is contained in:
parent
c4a6ef375c
commit
3d6db71f92
|
@ -41,12 +41,14 @@ int collisionCapsuleMinkowsiSum(void* data, struct Basis* basis, struct Vector3*
|
||||||
|
|
||||||
float directionY = vector3Dot(&basis->y, direction);
|
float directionY = vector3Dot(&basis->y, direction);
|
||||||
|
|
||||||
if (directionY > SQRT_2) {
|
if (directionY * directionY > 0.5f * vector3MagSqrd(direction)) {
|
||||||
|
if (directionY > 0.0f) {
|
||||||
vector3Scale(&basis->y, output, capsule->radius);
|
vector3Scale(&basis->y, output, capsule->radius);
|
||||||
return 0xFF;
|
return 0xFF;
|
||||||
} else if (directionY < -SQRT_2) {
|
} else {
|
||||||
vector3Scale(&basis->y, output, -capsule->radius - capsule->extendDownward);
|
vector3Scale(&basis->y, output, -capsule->radius - capsule->extendDownward);
|
||||||
return 0xFF00;
|
return 0xFF00;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
struct Vector2 horizontalBasis;
|
struct Vector2 horizontalBasis;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue