unify callbacks with & without graphics & window

This commit is contained in:
rezural
2021-01-02 16:45:55 +11:00
parent ed76291fbf
commit 34e79e9afc
11 changed files with 188 additions and 102 deletions

View File

@@ -65,31 +65,29 @@ pub fn init_world(testbed: &mut Testbed) {
* Setup a callback to control the platform.
*/
let mut count = 0;
testbed
.harness_mut()
.add_callback(move |physics, _, run_state| {
count += 1;
if count % 100 > 50 {
return;
testbed.add_callback(move |_, _, physics, _, run_state| {
count += 1;
if count % 100 > 50 {
return;
}
if let Some(platform) = physics.bodies.get_mut(platform_handle) {
let mut next_pos = *platform.position();
let dt = 0.016;
next_pos.translation.vector.y += (run_state.time * 5.0).sin() * dt;
next_pos.translation.vector.z += run_state.time.sin() * 5.0 * dt;
if next_pos.translation.vector.z >= rad * 10.0 {
next_pos.translation.vector.z -= dt;
}
if next_pos.translation.vector.z <= -rad * 10.0 {
next_pos.translation.vector.z += dt;
}
if let Some(platform) = physics.bodies.get_mut(platform_handle) {
let mut next_pos = *platform.position();
let dt = 0.016;
next_pos.translation.vector.y += (run_state.time * 5.0).sin() * dt;
next_pos.translation.vector.z += run_state.time.sin() * 5.0 * dt;
if next_pos.translation.vector.z >= rad * 10.0 {
next_pos.translation.vector.z -= dt;
}
if next_pos.translation.vector.z <= -rad * 10.0 {
next_pos.translation.vector.z += dt;
}
platform.set_next_kinematic_position(next_pos);
}
});
platform.set_next_kinematic_position(next_pos);
}
});
/*
* Run the simulation.