From ff28b90833243c463d855eb12ce727c56310982d Mon Sep 17 00:00:00 2001 From: rezural Date: Wed, 9 Dec 2020 22:50:16 +1100 Subject: make new public on PhysicsState --- src_testbed/testbed.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 0881d05..ec94d93 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -186,7 +186,7 @@ pub struct PhysicsState { } impl PhysicsState { - fn new() -> Self { + pub fn new() -> Self { Self { broad_phase: BroadPhase::new(), narrow_phase: NarrowPhase::new(), -- cgit From bcaa1d13e8f95fb8dec2ba14b9d5f6d0dd3261fb Mon Sep 17 00:00:00 2001 From: rezural Date: Sat, 19 Dec 2020 21:54:38 +1100 Subject: extract PhysicsState, PhysicsSnapshot & PhysicsEvents cargo fmt changes to make rapier compile --- src_testbed/testbed.rs | 108 ++----------------------------------------------- 1 file changed, 3 insertions(+), 105 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index ec94d93..8f9e026 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -4,9 +4,10 @@ use std::path::Path; use std::rc::Rc; use crate::engine::GraphicsManager; +use crate::physics::{PhysicsEvents, PhysicsSnapshot, PhysicsState}; use crate::plugin::TestbedPlugin; use crate::ui::TestbedUi; -use crossbeam::channel::Receiver; + use kiss3d::camera::Camera; use kiss3d::event::Event; use kiss3d::event::{Action, Key, WindowEvent}; @@ -21,7 +22,7 @@ use rapier::dynamics::{ ActivationStatus, IntegrationParameters, JointSet, RigidBodyHandle, RigidBodySet, }; use rapier::geometry::{ - BroadPhase, ColliderHandle, ColliderSet, ContactEvent, NarrowPhase, ProximityEvent, + BroadPhase, ColliderHandle, ColliderSet, NarrowPhase, }; #[cfg(feature = "dim3")] use rapier::geometry::{InteractionGroups, Ray}; @@ -98,109 +99,6 @@ bitflags! { } } -pub struct PhysicsSnapshot { - timestep_id: usize, - broad_phase: Vec, - narrow_phase: Vec, - bodies: Vec, - colliders: Vec, - joints: Vec, -} - -impl PhysicsSnapshot { - fn new( - timestep_id: usize, - broad_phase: &BroadPhase, - narrow_phase: &NarrowPhase, - bodies: &RigidBodySet, - colliders: &ColliderSet, - joints: &JointSet, - ) -> bincode::Result { - Ok(Self { - timestep_id, - broad_phase: bincode::serialize(broad_phase)?, - narrow_phase: bincode::serialize(narrow_phase)?, - bodies: bincode::serialize(bodies)?, - colliders: bincode::serialize(colliders)?, - joints: bincode::serialize(joints)?, - }) - } - - fn restore( - &self, - ) -> bincode::Result<( - usize, - BroadPhase, - NarrowPhase, - RigidBodySet, - ColliderSet, - JointSet, - )> { - Ok(( - self.timestep_id, - bincode::deserialize(&self.broad_phase)?, - bincode::deserialize(&self.narrow_phase)?, - bincode::deserialize(&self.bodies)?, - bincode::deserialize(&self.colliders)?, - bincode::deserialize(&self.joints)?, - )) - } - - fn print_snapshot_len(&self) { - let total = self.broad_phase.len() - + self.narrow_phase.len() - + self.bodies.len() - + self.colliders.len() - + self.joints.len(); - println!("Snapshot length: {}B", total); - println!("|_ broad_phase: {}B", self.broad_phase.len()); - println!("|_ narrow_phase: {}B", self.narrow_phase.len()); - println!("|_ bodies: {}B", self.bodies.len()); - println!("|_ colliders: {}B", self.colliders.len()); - println!("|_ joints: {}B", self.joints.len()); - } -} - -pub struct PhysicsEvents { - pub contact_events: Receiver, - pub proximity_events: Receiver, -} - -impl PhysicsEvents { - fn poll_all(&self) { - while let Ok(_) = self.contact_events.try_recv() {} - while let Ok(_) = self.proximity_events.try_recv() {} - } -} - -pub struct PhysicsState { - pub broad_phase: BroadPhase, - pub narrow_phase: NarrowPhase, - pub bodies: RigidBodySet, - pub colliders: ColliderSet, - pub joints: JointSet, - pub pipeline: PhysicsPipeline, - pub query_pipeline: QueryPipeline, - pub integration_parameters: IntegrationParameters, - pub gravity: Vector, -} - -impl PhysicsState { - pub fn new() -> Self { - Self { - broad_phase: BroadPhase::new(), - narrow_phase: NarrowPhase::new(), - bodies: RigidBodySet::new(), - colliders: ColliderSet::new(), - joints: JointSet::new(), - pipeline: PhysicsPipeline::new(), - query_pipeline: QueryPipeline::new(), - integration_parameters: IntegrationParameters::default(), - gravity: Vector::y() * -9.81, - } - } -} - pub struct TestbedState { pub running: RunMode, pub draw_colls: bool, -- cgit From b2db9e0a06490a644b12ce777fe27bbfa99c37b1 Mon Sep 17 00:00:00 2001 From: rezural Date: Sun, 20 Dec 2020 14:57:33 +1100 Subject: cargo fmt --- src_testbed/testbed.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 8f9e026..4fac8e1 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -21,9 +21,7 @@ use na::{self, Point2, Point3, Vector3}; use rapier::dynamics::{ ActivationStatus, IntegrationParameters, JointSet, RigidBodyHandle, RigidBodySet, }; -use rapier::geometry::{ - BroadPhase, ColliderHandle, ColliderSet, NarrowPhase, -}; +use rapier::geometry::{BroadPhase, ColliderHandle, ColliderSet, NarrowPhase}; #[cfg(feature = "dim3")] use rapier::geometry::{InteractionGroups, Ray}; use rapier::math::Vector; -- cgit