return rb_contact_buffer + rb_contact_count;
}
-VG_STATIC void rb_prepare_contact( rb_ct *ct )
+VG_STATIC void rb_prepare_contact( rb_ct *ct, float timestep )
{
- ct->bias = -0.2f * k_rb_rate * vg_minf( 0.0f, -ct->p+k_penetration_slop );
+ ct->bias = -0.2f * (timestep*3600.0f)
+ * vg_minf( 0.0f, -ct->p+k_penetration_slop );
+
rb_tangent_basis( ct->n, ct->t[0], ct->t[1] );
-
-#if 0
- ct->type = k_contact_type_default;
-#endif
ct->norm_impulse = 0.0f;
ct->tangent_impulse[0] = 0.0f;
ct->tangent_impulse[1] = 0.0f;
for( int i=0; i<len; i++ )
{
rb_ct *ct = &buffer[i];
- rb_prepare_contact( ct );
+ rb_prepare_contact( ct, k_rb_delta );
v3f ra, rb, raCn, rbCn, raCt, rbCt;
v3_sub( ct->co, ct->rba->co, ra );