update simuv3/collide.cpp and differential.cpp with last commite on cvs torcs by Christos

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@2425 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 66c482ee4d801e74edb6ac8d5d65f1c2f6eaf598
Former-commit-id: 10188f8b7075fb9699ab77d2ed9e3b3d83de1ddd
This commit is contained in:
torcs-ng 2010-05-05 18:34:59 +00:00
parent dbf79cbe09
commit 2b330312d3
2 changed files with 8 additions and 3 deletions

View file

@ -690,7 +690,7 @@ SimCarCollideXYScene(tCar *car)
// TODO: SIGN, scrap value?
float rpsign = n[0]*rg[1] - n[1]*rg[0];
const float e = 1.0f; // energy restitution
const float e = 0.99f; // energy restitution
float j = -(1.0f + e) * sgScalarProductVec2(vp, n) / (car->Minv + rp * rp * car->Iinv.z);
const float ROT_K = 0.5f;
@ -898,7 +898,7 @@ static void SimCarCollideResponse(void * /*dummy*/, DtObjectRef obj1, DtObjectRe
car[i]->VelColl.az = car[i]->DynGCg.vel.az + js * rpsign[i] * rpn[i] * car[i]->Iinv.z * ROT_K;
}
static float VELMAX = 1.0f;
static float VELMAX = 3.0f;
if (fabs(car[i]->VelColl.az) > VELMAX) {
car[i]->VelColl.az = SIGN(car[i]->VelColl.az) * VELMAX;
}

View file

@ -229,7 +229,12 @@ SimDifferentialUpdate(tCar *car, tDifferential *differential, int first)
float delta_spin = spinVel1-spinVel0;
//float pressure = tanh(rate*delta_spin);
float pressure = rate;
float bias = differential->dSlipMax * 0.5f* tanh(delta_spin);
float t_spin = tanh(delta_spin/differential->dSlipMax);
float bias = differential->dTqMax * 0.5f* t_spin;
if (fabs(2.0*bias) < differential->dTqMin)
{
bias = SIGN(bias) * 0.5 * differential->dTqMin;
}
float open = 1.0f - fabs(pressure);
//DrTq0 = DrTq*(0.5f + bias) + spiderTq;
//DrTq1 = DrTq*(0.5f - bias) - spiderTq;