/* ================ idPhysics_StaticMulti::ReadFromSnapshot ================ */ void idPhysics_StaticMulti::ReadFromSnapshot( const idBitMsgDelta &msg ) { int i, num id_attribute((unused)); idCQuat quat, localQuat; num = msg.ReadByte(); assert( num == current.Num() ); for ( i = 0; i < current.Num(); i++ ) { current[i].origin[0] = msg.ReadFloat(); current[i].origin[1] = msg.ReadFloat(); current[i].origin[2] = msg.ReadFloat(); quat.x = msg.ReadFloat(); quat.y = msg.ReadFloat(); quat.z = msg.ReadFloat(); current[i].localOrigin[0] = msg.ReadDeltaFloat( current[i].origin[0] ); current[i].localOrigin[1] = msg.ReadDeltaFloat( current[i].origin[1] ); current[i].localOrigin[2] = msg.ReadDeltaFloat( current[i].origin[2] ); localQuat.x = msg.ReadDeltaFloat( quat.x ); localQuat.y = msg.ReadDeltaFloat( quat.y ); localQuat.z = msg.ReadDeltaFloat( quat.z ); current[i].axis = quat.ToMat3(); current[i].localAxis = localQuat.ToMat3(); } }
/* ============= idPolynomial::Test ============= */ void idPolynomial::Test( void ) { int i, num; float roots[4], value id_attribute((unused)); idComplex complexRoots[4], complexValue; idPolynomial p; p = idPolynomial( -5.0f, 4.0f ); num = p.GetRoots( roots ); for ( i = 0; i < num; i++ ) { value = p.GetValue( roots[i] ); assert( idMath::Fabs( value ) < 1e-4f ); } p = idPolynomial( -5.0f, 4.0f, 3.0f ); num = p.GetRoots( roots ); for ( i = 0; i < num; i++ ) { value = p.GetValue( roots[i] ); assert( idMath::Fabs( value ) < 1e-4f ); } p = idPolynomial( 1.0f, 4.0f, 3.0f, -2.0f ); num = p.GetRoots( roots ); for ( i = 0; i < num; i++ ) { value = p.GetValue( roots[i] ); assert( idMath::Fabs( value ) < 1e-4f ); } p = idPolynomial( 5.0f, 4.0f, 3.0f, -2.0f ); num = p.GetRoots( roots ); for ( i = 0; i < num; i++ ) { value = p.GetValue( roots[i] ); assert( idMath::Fabs( value ) < 1e-4f ); } p = idPolynomial( -5.0f, 4.0f, 3.0f, 2.0f, 1.0f ); num = p.GetRoots( roots ); for ( i = 0; i < num; i++ ) { value = p.GetValue( roots[i] ); assert( idMath::Fabs( value ) < 1e-4f ); } p = idPolynomial( 1.0f, 4.0f, 3.0f, -2.0f ); num = p.GetRoots( complexRoots ); for ( i = 0; i < num; i++ ) { complexValue = p.GetValue( complexRoots[i] ); assert( idMath::Fabs( complexValue.r ) < 1e-4f && idMath::Fabs( complexValue.i ) < 1e-4f ); } p = idPolynomial( 5.0f, 4.0f, 3.0f, -2.0f ); num = p.GetRoots( complexRoots ); for ( i = 0; i < num; i++ ) { complexValue = p.GetValue( complexRoots[i] ); assert( idMath::Fabs( complexValue.r ) < 1e-4f && idMath::Fabs( complexValue.i ) < 1e-4f ); } }