Fix missing transform in IntersectRayWithOBB

This commit is contained in:
samisalreadytaken 2024-06-02 21:15:06 +03:00
parent 56e46c606d
commit 319c5083cc
2 changed files with 8 additions and 12 deletions

View file

@ -1475,12 +1475,10 @@ bool IntersectRayWithOBB( const Ray_t &ray, const matrix3x4_t &matOBBToWorld,
Collision_ClearTrace( ray.m_Start + ray.m_StartOffset, ray.m_Delta, pTrace );
// Compute a bounding sphere around the bloated OBB
Vector vecOBBCenter;
VectorAdd( vecOBBMins, vecOBBMaxs, vecOBBCenter );
vecOBBCenter *= 0.5f;
vecOBBCenter.x += matOBBToWorld[0][3];
vecOBBCenter.y += matOBBToWorld[1][3];
vecOBBCenter.z += matOBBToWorld[2][3];
Vector vecBoxExtents, vecOBBCenter;
VectorAdd( vecOBBMins, vecOBBMaxs, vecBoxExtents );
vecBoxExtents *= 0.5f;
VectorTransform( vecBoxExtents, matOBBToWorld, vecOBBCenter );
Vector vecOBBHalfDiagonal;
VectorSubtract( vecOBBMaxs, vecOBBMins, vecOBBHalfDiagonal );

View file

@ -1475,12 +1475,10 @@ bool IntersectRayWithOBB( const Ray_t &ray, const matrix3x4_t &matOBBToWorld,
Collision_ClearTrace( ray.m_Start + ray.m_StartOffset, ray.m_Delta, pTrace );
// Compute a bounding sphere around the bloated OBB
Vector vecOBBCenter;
VectorAdd( vecOBBMins, vecOBBMaxs, vecOBBCenter );
vecOBBCenter *= 0.5f;
vecOBBCenter.x += matOBBToWorld[0][3];
vecOBBCenter.y += matOBBToWorld[1][3];
vecOBBCenter.z += matOBBToWorld[2][3];
Vector vecBoxExtents, vecOBBCenter;
VectorAdd( vecOBBMins, vecOBBMaxs, vecBoxExtents );
vecBoxExtents *= 0.5f;
VectorTransform( vecBoxExtents, matOBBToWorld, vecOBBCenter );
Vector vecOBBHalfDiagonal;
VectorSubtract( vecOBBMaxs, vecOBBMins, vecOBBHalfDiagonal );