physics findings

rigid: main finding is rigid needs to take delta into account for integration (aka interpolation)
also used POINT_EPSILON for thresholds for consistency

for rigidshape/item/player, main finding was length calcs for the search area were all over the place,
so we now derive the extended length of the cached area based on the velocity and the object's radius itself rather than guessin per class

atrest gravity calc suplimental syncing between rigidshape and vehicle

**remindernote POINT_EPSILO is 0.0001
This commit is contained in:
AzaezelX 2025-12-13 17:41:21 -06:00
parent af73e79424
commit 4c083d713d
6 changed files with 15 additions and 14 deletions

View file

@ -658,9 +658,9 @@ void Item::updateWorkingCollisionSet(const U32 mask, const F32 dt)
{
// It is assumed that we will never accelerate more than 10 m/s for gravity...
//
Point3F scaledVelocity = mVelocity * dt;
Point3F scaledVelocity = mVelocity * dt * TickSec;
F32 len = scaledVelocity.len();
F32 newLen = len + (10 * dt);
F32 newLen = len + (mDataBlock->getShape()->mRadius * dt * TickSec);
// Check to see if it is actually necessary to construct the new working list,
// or if we can use the cached version from the last query. We use the x