Forráskód Böngészése

Merge pull request #1409 from Azaezel/alpha41/soImpulsive

skip out on impulses that have no chance of moving the object
Brian Roberts 7 hónapja
szülő
commit
bab30568eb

+ 1 - 0
Engine/source/T3D/rigid.cpp

@@ -117,6 +117,7 @@ void Rigid::updateCenterOfMass()
 
 void Rigid::applyImpulse(const Point3F &r, const Point3F &impulse)
 {
+   if (impulse.lenSquared() < mass) return;
    atRest = false;
 
    // Linear momentum and velocity

+ 1 - 1
Engine/source/T3D/rigidShape.cpp

@@ -1118,7 +1118,7 @@ void RigidShape::updatePos(F32 dt)
       {
          F32 k = mRigid.getKineticEnergy();
          F32 G = mNetGravity* dt * TickMs / mDataBlock->integration;
-         F32 Kg = 0.5 * mRigid.mass * G * G;
+         F32 Kg = mRigid.mass * G * G;
          if (k < sRestTol * Kg && ++restCount > sRestCount)
             mRigid.setAtRest();
       }

+ 1 - 1
Engine/source/T3D/vehicles/vehicle.cpp

@@ -808,7 +808,7 @@ void Vehicle::updatePos(F32 dt)
       {
          F32 k = mRigid.getKineticEnergy();
          F32 G = mNetGravity* dt * TickMs / mDataBlock->integration;
-         F32 Kg = 0.5 * mRigid.mass * G * G;
+         F32 Kg = mRigid.mass * G * G;
          if (k < sRestTol * Kg && ++restCount > sRestCount)
             mRigid.setAtRest();
       }