v3_sub( mtxA[3], (v3f){ r,r,r }, box[0] );
v3_add( mtxA[3], (v3f){ r,r,r }, box[1] );
v3_sub( mtxA[3], (v3f){ r,r,r }, box[0] );
v3_add( mtxA[3], (v3f){ r,r,r }, box[1] );
- while( bh_next( s->bh_scene, &it, box, &idx ) )
- {
+ while( bh_next( s->bh_scene, &it, box, &idx ) ){
int contact = rb_sphere__triangle( mtxA, b, tri, &buf[count] );
count += contact;
int contact = rb_sphere__triangle( mtxA, b, tri, &buf[count] );
count += contact;
- while( bh_next( s->bh_scene, &it, bbx, &idx ) )
- {
+ while( bh_next( s->bh_scene, &it, bbx, &idx ) ){
int contact = rb_capsule__triangle( mtxA, c, tri, &buf[count] );
count += contact;
int contact = rb_capsule__triangle( mtxA, c, tri, &buf[count] );
count += contact;
ct->normal_mass += v3_dot( rbCn, rbCnI );
ct->normal_mass = 1.0f/ct->normal_mass;
ct->normal_mass += v3_dot( rbCn, rbCnI );
ct->normal_mass = 1.0f/ct->normal_mass;
v3f raCtI, rbCtI;
v3_cross( ct->t[j], ra, raCt );
v3_cross( ct->t[j], rb, rbCt );
v3f raCtI, rbCtI;
v3_cross( ct->t[j], ra, raCt );
v3_cross( ct->t[j], rb, rbCt );
rb_rcv( ct->rba, ct->rbb, ra, rb, rv );
/* Friction */
rb_rcv( ct->rba, ct->rbb, ra, rb, rv );
/* Friction */
float f = k_friction * ct->norm_impulse,
vt = v3_dot( rv, ct->t[j] ),
lambda = ct->tangent_mass[j] * -vt;
float f = k_friction * ct->norm_impulse,
vt = v3_dot( rv, ct->t[j] ),
lambda = ct->tangent_mass[j] * -vt;