Rename the 3D debug-deserialize example
This commit is contained in:
committed by
Sébastien Crozet
parent
891c08177d
commit
c8a2c0379e
42
examples3d/debug_deserialize3.rs
Normal file
42
examples3d/debug_deserialize3.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
use rapier3d::prelude::*;
|
||||
use rapier_testbed3d::Testbed;
|
||||
|
||||
#[derive(serde::Deserialize)]
|
||||
struct PhysicsState {
|
||||
pub gravity: Vector<f32>,
|
||||
pub integration_parameters: IntegrationParameters,
|
||||
pub islands: IslandManager,
|
||||
pub broad_phase: BroadPhase,
|
||||
pub narrow_phase: NarrowPhase,
|
||||
pub bodies: RigidBodySet,
|
||||
pub colliders: ColliderSet,
|
||||
pub impulse_joints: ImpulseJointSet,
|
||||
pub multibody_joints: MultibodyJointSet,
|
||||
}
|
||||
|
||||
pub fn init_world(testbed: &mut Testbed) {
|
||||
/*
|
||||
* Set up the testbed.
|
||||
*/
|
||||
let bytes = std::fs::read("state.bin").unwrap();
|
||||
match bincode::deserialize(&bytes) {
|
||||
Ok(state) => {
|
||||
let state: PhysicsState = state;
|
||||
testbed.set_world(
|
||||
state.bodies,
|
||||
state.colliders,
|
||||
state.impulse_joints,
|
||||
state.multibody_joints,
|
||||
);
|
||||
testbed.harness_mut().physics.islands = state.islands;
|
||||
testbed.harness_mut().physics.broad_phase = state.broad_phase;
|
||||
testbed.harness_mut().physics.narrow_phase = state.narrow_phase;
|
||||
testbed.harness_mut().physics.integration_parameters = state.integration_parameters;
|
||||
testbed.harness_mut().physics.gravity = state.gravity;
|
||||
|
||||
testbed.set_graphics_shift(vector![-541.0, -6377257.0, -61.0]);
|
||||
testbed.look_at(point![10.0, 10.0, 10.0], point![0.0, 0.0, 0.0]);
|
||||
}
|
||||
Err(err) => println!("Failed to deserialize the world state: {}", err),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user