Add collision groups demos.
This commit is contained in:
@@ -63,6 +63,7 @@ pub struct GraphicsManager {
|
||||
#[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>>,
|
||||
@@ -100,6 +101,7 @@ impl GraphicsManager {
|
||||
#[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),
|
||||
@@ -186,6 +188,10 @@ impl GraphicsManager {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_collider_initial_color(&mut self, c: ColliderHandle, color: Point3<f32>) {
|
||||
self.c2color.insert(c, color);
|
||||
}
|
||||
|
||||
pub fn set_body_wireframe(&mut self, b: RigidBodyHandle, enabled: bool) {
|
||||
self.b2wireframe.insert(b, enabled);
|
||||
|
||||
@@ -324,6 +330,7 @@ impl GraphicsManager {
|
||||
let mut new_nodes = Vec::new();
|
||||
|
||||
for collider_handle in bodies[handle].colliders() {
|
||||
let color = self.c2color.get(collider_handle).copied().unwrap_or(color);
|
||||
let collider = &colliders[*collider_handle];
|
||||
self.add_collider(window, *collider_handle, collider, color, &mut new_nodes);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,9 @@ use rapier::dynamics::{
|
||||
};
|
||||
#[cfg(feature = "dim3")]
|
||||
use rapier::geometry::Ray;
|
||||
use rapier::geometry::{BroadPhase, ColliderSet, ContactEvent, NarrowPhase, ProximityEvent};
|
||||
use rapier::geometry::{
|
||||
BroadPhase, ColliderHandle, ColliderSet, ContactEvent, NarrowPhase, ProximityEvent,
|
||||
};
|
||||
use rapier::math::Vector;
|
||||
use rapier::pipeline::{ChannelEventCollector, PhysicsPipeline, QueryPipeline};
|
||||
#[cfg(feature = "fluids")]
|
||||
@@ -497,6 +499,10 @@ impl Testbed {
|
||||
self.graphics.set_body_color(body, color);
|
||||
}
|
||||
|
||||
pub fn set_collider_initial_color(&mut self, collider: ColliderHandle, color: Point3<f32>) {
|
||||
self.graphics.set_collider_initial_color(collider, color);
|
||||
}
|
||||
|
||||
#[cfg(feature = "fluids")]
|
||||
pub fn set_fluid_color(&mut self, fluid: FluidHandle, color: Point3<f32>) {
|
||||
self.graphics.set_fluid_color(fluid, color);
|
||||
|
||||
Reference in New Issue
Block a user