mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-15 08:34:40 +00:00
Merge pull request #1409 from Azaezel/alpha41/soImpulsive
skip out on impulses that have no chance of moving the object
This commit is contained in:
commit
bab30568eb
3 changed files with 3 additions and 2 deletions
|
|
@ -117,6 +117,7 @@ void Rigid::updateCenterOfMass()
|
||||||
|
|
||||||
void Rigid::applyImpulse(const Point3F &r, const Point3F &impulse)
|
void Rigid::applyImpulse(const Point3F &r, const Point3F &impulse)
|
||||||
{
|
{
|
||||||
|
if (impulse.lenSquared() < mass) return;
|
||||||
atRest = false;
|
atRest = false;
|
||||||
|
|
||||||
// Linear momentum and velocity
|
// Linear momentum and velocity
|
||||||
|
|
|
||||||
|
|
@ -1118,7 +1118,7 @@ void RigidShape::updatePos(F32 dt)
|
||||||
{
|
{
|
||||||
F32 k = mRigid.getKineticEnergy();
|
F32 k = mRigid.getKineticEnergy();
|
||||||
F32 G = mNetGravity* dt * TickMs / mDataBlock->integration;
|
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)
|
if (k < sRestTol * Kg && ++restCount > sRestCount)
|
||||||
mRigid.setAtRest();
|
mRigid.setAtRest();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -808,7 +808,7 @@ void Vehicle::updatePos(F32 dt)
|
||||||
{
|
{
|
||||||
F32 k = mRigid.getKineticEnergy();
|
F32 k = mRigid.getKineticEnergy();
|
||||||
F32 G = mNetGravity* dt * TickMs / mDataBlock->integration;
|
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)
|
if (k < sRestTol * Kg && ++restCount > sRestCount)
|
||||||
mRigid.setAtRest();
|
mRigid.setAtRest();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue