aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/engine.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2020-11-19 15:48:50 +0100
committerGitHub <noreply@github.com>2020-11-19 15:48:50 +0100
commite571a0628de5ce420646b3cb8b316acf1b134e8f (patch)
tree3e836ca8fee3f6ddfe838ecbef97ec0d824d7056 /src_testbed/engine.rs
parent3f619d81ffc7899330e94ac34d3992a508dcf41b (diff)
parent49dfe74a1bd21081fcdfc73489430f7515b09e93 (diff)
downloadrapier-e571a0628de5ce420646b3cb8b316acf1b134e8f.tar.gz
rapier-e571a0628de5ce420646b3cb8b316acf1b134e8f.tar.bz2
rapier-e571a0628de5ce420646b3cb8b316acf1b134e8f.zip
Merge pull request #62 from dimforge/salva
Testbed: remove code related to salva and add a plugin system
Diffstat (limited to 'src_testbed/engine.rs')
-rw-r--r--src_testbed/engine.rs121
1 files changed, 4 insertions, 117 deletions
diff --git a/src_testbed/engine.rs b/src_testbed/engine.rs
index 52b9ca9..ff5e1ef 100644
--- a/src_testbed/engine.rs
+++ b/src_testbed/engine.rs
@@ -15,15 +15,11 @@ use rapier::dynamics::{RigidBodyHandle, RigidBodySet};
use rapier::geometry::{Collider, ColliderHandle, ColliderSet};
//use crate::objects::capsule::Capsule;
//use crate::objects::convex::Convex;
-//#[cfg(feature = "fluids")]
-//use crate::objects::fluid::Fluid as FluidNode;
//#[cfg(feature = "dim3")]
//use crate::objects::mesh::Mesh;
//use crate::objects::plane::Plane;
//#[cfg(feature = "dim2")]
//use crate::objects::polyline::Polyline;
-//#[cfg(feature = "fluids")]
-//use crate::objects::FluidRenderingMode;
use crate::objects::capsule::Capsule;
#[cfg(feature = "dim3")]
use crate::objects::cone::Cone;
@@ -58,22 +54,12 @@ impl GraphicsWindow for Window {
pub struct GraphicsManager {
rand: Pcg32,
b2sn: HashMap<RigidBodyHandle, Vec<Node>>,
- #[cfg(feature = "fluids")]
- f2sn: HashMap<FluidHandle, FluidNode>,
- #[cfg(feature = "fluids")]
- boundary2sn: HashMap<BoundaryHandle, FluidNode>,
b2color: HashMap<RigidBodyHandle, Point3<f32>>,
c2color: HashMap<ColliderHandle, Point3<f32>>,
b2wireframe: HashMap<RigidBodyHandle, bool>,
- #[cfg(feature = "fluids")]
- f2color: HashMap<FluidHandle, Point3<f32>>,
ground_color: Point3<f32>,
camera: Camera,
ground_handle: Option<RigidBodyHandle>,
- #[cfg(feature = "fluids")]
- fluid_rendering_mode: FluidRenderingMode,
- #[cfg(feature = "fluids")]
- render_boundary_particles: bool,
}
impl GraphicsManager {
@@ -96,21 +82,11 @@ impl GraphicsManager {
camera,
rand: Pcg32::seed_from_u64(0),
b2sn: HashMap::new(),
- #[cfg(feature = "fluids")]
- f2sn: HashMap::new(),
- #[cfg(feature = "fluids")]
- boundary2sn: HashMap::new(),
b2color: HashMap::new(),
c2color: HashMap::new(),
- #[cfg(feature = "fluids")]
- f2color: HashMap::new(),
ground_color: Point3::new(0.5, 0.5, 0.5),
b2wireframe: HashMap::new(),
ground_handle: None,
- #[cfg(feature = "fluids")]
- fluid_rendering_mode: FluidRenderingMode::StaticColor,
- #[cfg(feature = "fluids")]
- render_boundary_particles: false,
}
}
@@ -118,20 +94,6 @@ impl GraphicsManager {
self.ground_handle = handle
}
- #[cfg(feature = "fluids")]
- pub fn set_fluid_rendering_mode(&mut self, mode: FluidRenderingMode) {
- self.fluid_rendering_mode = mode;
- }
-
- #[cfg(feature = "fluids")]
- pub fn enable_boundary_particles_rendering(&mut self, enabled: bool) {
- self.render_boundary_particles = enabled;
-
- for sn in self.boundary2sn.values_mut() {
- sn.scene_node_mut().set_visible(enabled);
- }
- }
-
pub fn clear(&mut self, window: &mut Window) {
for sns in self.b2sn.values_mut() {
for sn in sns.iter_mut() {
@@ -141,17 +103,7 @@ impl GraphicsManager {
}
}
- #[cfg(feature = "fluids")]
- for sn in self.f2sn.values_mut().chain(self.boundary2sn.values_mut()) {
- let node = sn.scene_node_mut();
- window.remove_graphics_node(node);
- }
-
self.b2sn.clear();
- #[cfg(feature = "fluids")]
- self.f2sn.clear();
- #[cfg(feature = "fluids")]
- self.boundary2sn.clear();
self.c2color.clear();
self.b2color.clear();
self.b2wireframe.clear();
@@ -170,15 +122,6 @@ impl GraphicsManager {
self.b2sn.remove(&body);
}
- #[cfg(feature = "fluids")]
- pub fn set_fluid_color(&mut self, f: FluidHandle, color: Point3<f32>) {
- self.f2color.insert(f, color);
-
- if let Some(n) = self.f2sn.get_mut(&f) {
- n.set_color(color)
- }
- }
-
pub fn set_body_color(&mut self, b: RigidBodyHandle, color: Point3<f32>) {
self.b2color.insert(b, color);
@@ -234,6 +177,10 @@ impl GraphicsManager {
}
}
+ pub fn next_color(&mut self) -> Point3<f32> {
+ Self::gen_color(&mut self.rand)
+ }
+
fn gen_color(rng: &mut Pcg32) -> Point3<f32> {
let mut color: Point3<f32> = rng.gen();
color *= 1.5;
@@ -258,49 +205,6 @@ impl GraphicsManager {
color
}
- #[cfg(feature = "fluids")]
- pub fn add_fluid(
- &mut self,
- window: &mut Window,
- handle: FluidHandle,
- fluid: &Fluid<f32>,
- particle_radius: f32,
- ) {
- let rand = &mut self.rand;
- let color = *self
- .f2color
- .entry(handle)
- .or_insert_with(|| Self::gen_color(rand));
-
- self.add_fluid_with_color(window, handle, fluid, particle_radius, color);
- }
-
- #[cfg(feature = "fluids")]
- pub fn add_boundary(
- &mut self,
- window: &mut Window,
- handle: BoundaryHandle,
- boundary: &Boundary<f32>,
- particle_radius: f32,
- ) {
- let color = self.ground_color;
- let node = FluidNode::new(particle_radius, &boundary.positions, color, window);
- self.boundary2sn.insert(handle, node);
- }
-
- #[cfg(feature = "fluids")]
- pub fn add_fluid_with_color(
- &mut self,
- window: &mut Window,
- handle: FluidHandle,
- fluid: &Fluid<f32>,
- particle_radius: f32,
- color: Point3<f32>,
- ) {
- let node = FluidNode::new(particle_radius, &fluid.positions, color, window);
- self.f2sn.insert(handle, node);
- }
-
pub fn add(
&mut self,
window: &mut Window,
@@ -642,23 +546,6 @@ impl GraphicsManager {
}
*/
- #[cfg(feature = "fluids")]
- pub fn draw_fluids(&mut self, liquid_world: &LiquidWorld<f32>) {
- for (i, fluid) in liquid_world.fluids().iter() {
- if let Some(node) = self.f2sn.get_mut(&i) {
- node.update_with_fluid(fluid, self.fluid_rendering_mode)
- }
- }
-
- if self.render_boundary_particles {
- for (i, boundary) in liquid_world.boundaries().iter() {
- if let Some(node) = self.boundary2sn.get_mut(&i) {
- node.update_with_boundary(boundary)
- }
- }
- }
- }
-
pub fn draw(&mut self, _bodies: &RigidBodySet, colliders: &ColliderSet, window: &mut Window) {
// use kiss3d::camera::Camera;
// println!(