Rename the 3D debug-deserialize example
This commit is contained in:
committed by
Sébastien Crozet
parent
891c08177d
commit
c8a2c0379e
@@ -20,12 +20,12 @@ mod debug_articulations3;
|
||||
mod debug_big_colliders3;
|
||||
mod debug_boxes3;
|
||||
mod debug_cylinder3;
|
||||
mod debug_deserialize3;
|
||||
mod debug_dynamic_collider_add3;
|
||||
mod debug_friction3;
|
||||
mod debug_infinite_fall3;
|
||||
mod debug_prismatic3;
|
||||
mod debug_rollback3;
|
||||
mod debug_serialized3;
|
||||
mod debug_shape_modification3;
|
||||
mod debug_triangle3;
|
||||
mod debug_trimesh3;
|
||||
@@ -123,10 +123,7 @@ pub fn main() {
|
||||
"(Debug) shape modification",
|
||||
debug_shape_modification3::init_world,
|
||||
),
|
||||
(
|
||||
"A serialized",
|
||||
debug_serialized3::init_world,
|
||||
),
|
||||
("(Debug) deserialize", debug_deserialize3::init_world),
|
||||
];
|
||||
|
||||
// Lexicographic sort, with stress tests moved at the end of the list.
|
||||
|
||||
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),
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
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();
|
||||
let mut state: PhysicsState = bincode::deserialize(&bytes).unwrap();
|
||||
|
||||
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]);
|
||||
}
|
||||
Reference in New Issue
Block a user