+
+ for( u32 i=0; i<world_global.text_particle_count; i++ ){
+ struct text_particle *particle = &world_global.text_particles[i];
+ rb_object_debug( &particle->obj, VG__RED );
+ }
+}
+
+VG_STATIC void world_routes_fixedupdate( world_instance *world )
+{
+ rb_solver_reset();
+
+ for( u32 i=0; i<world_global.text_particle_count; i++ ){
+ struct text_particle *particle = &world_global.text_particles[i];
+
+ if( rb_global_has_space() ){
+ rb_ct *buf = rb_global_buffer();
+
+ int l = rb_sphere__scene( particle->obj.rb.to_world,
+ &particle->obj.inf.sphere,
+ NULL, &world->rb_geo.inf.scene, buf );
+
+ for( int j=0; j<l; j++ ){
+ buf[j].rba = &particle->obj.rb;
+ buf[j].rbb = &world->rb_geo.rb;
+ }
+
+ rb_contact_count += l;
+ }
+ }
+
+ rb_presolve_contacts( rb_contact_buffer, rb_contact_count );
+
+ for( int i=0; i<rb_contact_count; i++ ){
+ rb_contact_restitution( rb_contact_buffer+i, vg_randf() );
+ }
+
+ for( int i=0; i<6; i++ ){
+ rb_solve_contacts( rb_contact_buffer, rb_contact_count );
+ }
+
+ for( u32 i=0; i<world_global.text_particle_count; i++ ){
+ struct text_particle *particle = &world_global.text_particles[i];
+ rb_iter( &particle->obj.rb );
+ }
+
+ for( u32 i=0; i<world_global.text_particle_count; i++ ){
+ struct text_particle *particle = &world_global.text_particles[i];
+ rb_update_transform( &particle->obj.rb );
+ }