aboutsummaryrefslogtreecommitdiff
path: root/Client/Source/Phy2DLite/Arbiter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Source/Phy2DLite/Arbiter.cpp')
-rw-r--r--Client/Source/Phy2DLite/Arbiter.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/Client/Source/Phy2DLite/Arbiter.cpp b/Client/Source/Phy2DLite/Arbiter.cpp
index 4163154..567e6f7 100644
--- a/Client/Source/Phy2DLite/Arbiter.cpp
+++ b/Client/Source/Phy2DLite/Arbiter.cpp
@@ -2,6 +2,7 @@
#include "World.h"
#include "Body.h"
#include "Joint.h"
+#include "Constants.h"
using namespace Phy2D;
@@ -54,9 +55,9 @@ void Arbiter::Update(Contact* newContacts, int numNewContacts)
}
else
{
- c->Pn = 0.0f;
- c->Pt = 0.0f;
- c->Pnb = 0.0f;
+ c->Pn = _0;
+ c->Pt = _0;
+ c->Pnb = _0;
}
}
else
@@ -74,8 +75,8 @@ void Arbiter::Update(Contact* newContacts, int numNewContacts)
void Arbiter::PreStep(number inv_dt)
{
- const number k_allowedPenetration = 0.01f;
- number k_biasFactor = World::positionCorrection ? 0.2f : 0.0f;
+ const number k_allowedPenetration = _0_01;
+ number k_biasFactor = World::positionCorrection ? _0_2 : _0;
for (int i = 0; i < numContacts; ++i)
{
@@ -89,16 +90,16 @@ void Arbiter::PreStep(number inv_dt)
number rn2 = Dot(r2, c->normal);
number kNormal = body1->invMass + body2->invMass;
kNormal += body1->invI * (Dot(r1, r1) - rn1 * rn1) + body2->invI * (Dot(r2, r2) - rn2 * rn2);
- c->massNormal = (number) 1.0f / kNormal;
+ c->massNormal = (number)_1 / kNormal;
- Vec2 tangent = Cross(c->normal, 1.0f);
+ Vec2 tangent = Cross(c->normal, _1);
number rt1 = Dot(r1, tangent);
number rt2 = Dot(r2, tangent);
number kTangent = body1->invMass + body2->invMass;
kTangent += body1->invI * (Dot(r1, r1) - rt1 * rt1) + body2->invI * (Dot(r2, r2) - rt2 * rt2);
- c->massTangent = (number) 1.0f / kTangent;
+ c->massTangent = (number)_1 / kTangent;
- c->bias = -k_biasFactor * inv_dt * Min(0.0f, c->separation + k_allowedPenetration);
+ c->bias = -k_biasFactor * inv_dt * Min(_0, c->separation + k_allowedPenetration);
if (World::accumulateImpulses)
{
@@ -137,12 +138,12 @@ void Arbiter::ApplyImpulse()
{
// Clamp the accumulated impulse
number Pn0 = c->Pn;
- c->Pn = Max(Pn0 + dPn, 0.0f);
+ c->Pn = Max(Pn0 + dPn, _0);
dPn = c->Pn - Pn0;
}
else
{
- dPn = Max(dPn, 0.0f);
+ dPn = Max(dPn, _0);
}
// Apply contact impulse
@@ -157,7 +158,7 @@ void Arbiter::ApplyImpulse()
// Relative velocity at contact
dv = b2->velocity + Cross(b2->angularVelocity, c->r2) - b1->velocity - Cross(b1->angularVelocity, c->r1);
- Vec2 tangent = Cross(c->normal, 1.0f);
+ Vec2 tangent = Cross(c->normal, _1);
number vt = Dot(dv, tangent);
number dPt = c->massTangent * (-vt);