1
0
Fork 0

Josh wanted a compression-m value exported for gear, so he can animate

them more accurately.
This commit is contained in:
andy 2005-11-24 17:35:42 +00:00
parent a56e35ef74
commit 6a614dba49
3 changed files with 5 additions and 0 deletions

View file

@ -180,9 +180,11 @@ void Gear::calcForce(RigidBody* body, State *s, float* v, float* rot)
// First off, make sure that the gear "tip" is below the ground.
// If it's not, there's no force.
float a = ground[3] - Math::dot3(_pos, ground);
_compressDist = -a;
if(a > 0) {
_wow = 0;
_frac = 0;
_compressDist = 0;
_rollSpeed = 0;
_casterAngle = 0;
return;

View file

@ -66,6 +66,7 @@ public:
void getForce(float* force, float* contact);
float getWoW();
float getCompressFraction();
float getCompressDist() { return _compressDist; }
private:
float calcFriction(float wgt, float v);
@ -84,6 +85,7 @@ private:
float _contact[3];
float _wow;
float _frac;
float _compressDist;
double _global_ground[4];
float _global_vel[3];
float _casterAngle;

View file

@ -461,6 +461,7 @@ void YASim::copyFromYASim()
node->setBoolValue("has-brake", g->getBrake() != 0);
node->setBoolValue("wow", g->getCompressFraction() != 0);
node->setFloatValue("compression-norm", g->getCompressFraction());
node->setFloatValue("compression-m", g->getCompressDist());
node->setFloatValue("caster-angle-deg", g->getCasterAngle() * RAD2DEG);
node->setFloatValue("rollspeed-ms", g->getRollSpeed());
}