/* ================ idPhysics_RigidBody::idPhysics_RigidBody ================ */ idPhysics_RigidBody::idPhysics_RigidBody( void ) { // set default rigid body properties SetClipMask( MASK_SOLID ); SetBouncyness( 0.6f ); SetFriction( 0.6f, 0.6f, 0.0f ); clipModel = NULL; memset( ¤t, 0, sizeof( current ) ); current.atRest = -1; current.lastTimeStep = USERCMD_MSEC; current.i.position.Zero(); current.i.orientation.Identity(); current.i.linearMomentum.Zero(); current.i.angularMomentum.Zero(); saved = current; mass = 1.0f; inverseMass = 1.0f; centerOfMass.Zero(); inertiaTensor.Identity(); inverseInertiaTensor.Identity(); // use the least expensive euler integrator integrator = new idODE_Euler( sizeof( rigidBodyIState_t ) / sizeof( float ), RigidBodyDerivatives, this ); dropToFloor = false; noImpact = false; noContact = false; hasMaster = false; isOrientated = false; #ifdef RB_TIMINGS lastTimerReset = 0; #endif }
/* ================ rvPhysics_Particle::rvPhysics_Particle ================ */ rvPhysics_Particle::rvPhysics_Particle( void ) { SetClipMask( MASK_SOLID ); SetBouncyness( 0.6f, true ); clipModel = NULL; memset( ¤t, 0, sizeof( current ) ); current.atRest = -1; current.origin.Zero(); saved = current; dropToFloor = false; testSolid = false; hasMaster = false; SetFriction( 0.6f, 0.6f, 0.0f ); SetBouncyness ( 0.5f, true ); gravityNormal.Zero(); }