aboutsummaryrefslogtreecommitdiff
path: root/src_testbed
diff options
context:
space:
mode:
Diffstat (limited to 'src_testbed')
-rw-r--r--src_testbed/camera3d.rs6
-rw-r--r--src_testbed/graphics.rs4
-rw-r--r--src_testbed/objects/node.rs21
-rw-r--r--src_testbed/testbed.rs61
-rw-r--r--src_testbed/ui.rs8
5 files changed, 51 insertions, 49 deletions
diff --git a/src_testbed/camera3d.rs b/src_testbed/camera3d.rs
index b2313b7..c9ad2da 100644
--- a/src_testbed/camera3d.rs
+++ b/src_testbed/camera3d.rs
@@ -74,8 +74,8 @@ impl OrbitCameraPlugin {
}
if mouse_button_input.pressed(camera.rotate_button) {
- camera.x -= delta.x * camera.rotate_sensitivity * time.delta_seconds();
- camera.y -= delta.y * camera.rotate_sensitivity * time.delta_seconds();
+ camera.x -= delta.x * camera.rotate_sensitivity * time.delta_secs();
+ camera.y -= delta.y * camera.rotate_sensitivity * time.delta_secs();
camera.y = camera
.y
.max(*camera.pitch_range.start())
@@ -87,7 +87,7 @@ impl OrbitCameraPlugin {
let up_dir = transform.rotation * Vec3::Y;
let pan_vector = (delta.x * right_dir + delta.y * up_dir)
* camera.pan_sensitivity
- * time.delta_seconds();
+ * time.delta_secs();
camera.center += pan_vector;
}
}
diff --git a/src_testbed/graphics.rs b/src_testbed/graphics.rs
index c09c971..076ef29 100644
--- a/src_testbed/graphics.rs
+++ b/src_testbed/graphics.rs
@@ -21,6 +21,10 @@ use std::collections::HashMap;
pub type BevyMaterial = bevy_sprite::ColorMaterial;
#[cfg(feature = "dim3")]
pub type BevyMaterial = StandardMaterial;
+#[cfg(feature = "dim2")]
+pub type BevyMaterialComponent = MeshMaterial2d<BevyMaterial>;
+#[cfg(feature = "dim3")]
+pub type BevyMaterialComponent = MeshMaterial3d<BevyMaterial>;
pub type InstancedMaterials = HashMap<Point3<usize>, Handle<BevyMaterial>>;
pub const SELECTED_OBJECT_MATERIAL_KEY: Point3<usize> = point![42, 42, 42];
diff --git a/src_testbed/objects/node.rs b/src_testbed/objects/node.rs
index 5926eb7..ad56370 100644
--- a/src_testbed/objects/node.rs
+++ b/src_testbed/objects/node.rs
@@ -17,7 +17,6 @@ use rapier::math::{Isometry, Real, Vector};
use crate::graphics::{BevyMaterial, InstancedMaterials, SELECTED_OBJECT_MATERIAL_KEY};
#[cfg(feature = "dim2")]
use {
- bevy_sprite::MaterialMesh2dBundle,
na::{Point2, Vector2},
rapier::geometry::{Ball, Cuboid},
};
@@ -46,6 +45,7 @@ impl EntityWithGraphics {
let selection_material = bevy_sprite::ColorMaterial {
color: Color::from(Srgba::rgb(1.0, 0.0, 0.0)),
texture: None,
+ ..default()
};
#[cfg(feature = "dim3")]
let selection_material = StandardMaterial {
@@ -112,6 +112,7 @@ impl EntityWithGraphics {
let material = bevy_sprite::ColorMaterial {
color: bevy_color,
texture: None,
+ ..default()
};
#[cfg(feature = "dim3")]
let material = StandardMaterial {
@@ -127,19 +128,17 @@ impl EntityWithGraphics {
if let Some(mesh) = mesh {
#[cfg(feature = "dim2")]
- let bundle = MaterialMesh2dBundle {
- mesh: mesh.into(),
- material: material_handle.clone_weak(),
+ let bundle = (
+ Mesh2d(mesh),
+ MeshMaterial2d(material_handle.clone_weak()),
transform,
- ..Default::default()
- };
+ );
#[cfg(feature = "dim3")]
- let bundle = PbrBundle {
- mesh,
- material: material_handle.clone_weak(),
+ let bundle = (
+ Mesh2d(mesh),
+ MeshMaterial3d(material_handle.clone_weak()),
transform,
- ..Default::default()
- };
+ );
let mut entity_commands = commands.entity(entity);
entity_commands.insert(bundle);
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index 8390f29..2020ed9 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -8,6 +8,7 @@ use std::num::NonZeroUsize;
use bevy::prelude::*;
use crate::debug_render::{DebugRenderPipelineResource, RapierDebugRenderPlugin};
+use crate::graphics::BevyMaterialComponent;
use crate::physics::{DeserializedPhysicsSnapshot, PhysicsEvents, PhysicsSnapshot, PhysicsState};
use crate::plugin::TestbedPlugin;
use crate::{graphics::GraphicsManager, harness::RunState};
@@ -436,7 +437,6 @@ impl TestbedApp {
let mut app = App::new();
app.insert_resource(ClearColor(Color::from(Srgba::rgb(0.15, 0.15, 0.15))))
- .insert_resource(Msaa::Sample4)
.insert_resource(AmbientLight {
brightness: 0.3,
..Default::default()
@@ -1092,36 +1092,35 @@ fn setup_graphics_environment(mut commands: Commands) {
..Default::default()
});
- commands.spawn(DirectionalLightBundle {
- directional_light: DirectionalLight {
+ commands.spawn((
+ DirectionalLight {
shadows_enabled: false,
..Default::default()
},
- transform: Transform {
+ Transform {
translation: Vec3::new(10.0, 2.0, 10.0),
rotation: Quat::from_rotation_x(-std::f32::consts::FRAC_PI_4),
..Default::default()
},
- ..Default::default()
- });
-
- commands
- .spawn(Camera3dBundle {
- transform: Transform::from_matrix(
- Mat4::look_at_rh(
- Vec3::new(-30.0, 30.0, 100.0),
- Vec3::new(0.0, 10.0, 0.0),
- Vec3::new(0.0, 1.0, 0.0),
- )
- .inverse(),
- ),
- ..Default::default()
- })
- .insert(OrbitCamera {
+ ));
+
+ commands.spawn((
+ Camera3d::default(),
+ Msaa::Sample4,
+ MainCamera,
+ Transform::from_matrix(
+ Mat4::look_at_rh(
+ Vec3::new(-30.0, 30.0, 100.0),
+ Vec3::new(0.0, 10.0, 0.0),
+ Vec3::new(0.0, 1.0, 0.0),
+ )
+ .inverse(),
+ ),
+ OrbitCamera {
rotate_sensitivity: 0.05,
..OrbitCamera::default()
- })
- .insert(MainCamera);
+ },
+ ));
}
#[cfg(feature = "dim2")]
@@ -1140,14 +1139,14 @@ fn setup_graphics_environment(mut commands: Commands) {
// ..Default::default()
// });
commands
- .spawn(Camera2dBundle {
- transform: Transform {
+ .spawn((
+ Camera2d,
+ Transform {
translation: Vec3::new(0.0, 0.0, 0.0),
rotation: Quat::IDENTITY,
scale: Vec3::new(0.01, 0.01, 1.0),
},
- ..Camera2dBundle::default()
- })
+ ))
.insert(OrbitCamera {
zoom: 100.0,
pan_sensitivity: 0.02,
@@ -1188,7 +1187,7 @@ fn update_testbed(
(mut gfx_components, mut cameras, mut material_handles): (
Query<&mut Transform>,
Query<(&Camera, &GlobalTransform, &mut OrbitCamera)>,
- Query<&mut Handle<BevyMaterial>>,
+ Query<&mut BevyMaterialComponent>,
),
keys: Res<ButtonInput<KeyCode>>,
) {
@@ -1582,7 +1581,7 @@ fn clear(
#[cfg(feature = "dim2")]
fn highlight_hovered_body(
- _material_handles: &mut Query<&mut Handle<BevyMaterial>>,
+ _material_handles: &mut Query<&mut BevyMaterialComponent>,
_graphics_manager: &mut GraphicsManager,
_testbed_state: &mut TestbedState,
_physics: &PhysicsState,
@@ -1595,7 +1594,7 @@ fn highlight_hovered_body(
#[cfg(feature = "dim3")]
fn highlight_hovered_body(
- material_handles: &mut Query<&mut Handle<BevyMaterial>>,
+ material_handles: &mut Query<&mut BevyMaterialComponent>,
graphics_manager: &mut GraphicsManager,
testbed_state: &mut TestbedState,
physics: &PhysicsState,
@@ -1607,7 +1606,7 @@ fn highlight_hovered_body(
if let Some(nodes) = graphics_manager.body_nodes_mut(highlighted_body) {
for node in nodes {
if let Ok(mut handle) = material_handles.get_mut(node.entity) {
- *handle = node.material.clone_weak()
+ **handle = node.material.clone_weak()
};
}
}
@@ -1644,7 +1643,7 @@ fn highlight_hovered_body(
for node in graphics_manager.body_nodes_mut(parent_handle).unwrap() {
if let Ok(mut handle) = material_handles.get_mut(node.entity) {
- *handle = selection_material.clone_weak();
+ **handle = selection_material.clone_weak();
}
}
}
diff --git a/src_testbed/ui.rs b/src_testbed/ui.rs
index 39ac93a..5945c38 100644
--- a/src_testbed/ui.rs
+++ b/src_testbed/ui.rs
@@ -363,13 +363,13 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
counters.step_time_ms(),
(1000.0 / counters.step_time_ms()).round()
))
- .id_source("total")
+ .id_salt("total")
.show(ui, |ui| {
egui::CollapsingHeader::new(format!(
"Collision detection: {:.2}ms",
counters.collision_detection_time_ms()
))
- .id_source("collision detection")
+ .id_salt("collision detection")
.show(ui, |ui| {
ui.label(format!(
"Broad-phase: {:.2}ms",
@@ -381,7 +381,7 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
));
});
egui::CollapsingHeader::new(format!("Solver: {:.2}ms", counters.solver_time_ms()))
- .id_source("solver")
+ .id_salt("solver")
.show(ui, |ui| {
ui.label(format!(
"Velocity assembly: {:.2}ms",
@@ -401,7 +401,7 @@ fn profiling_ui(ui: &mut Ui, counters: &Counters) {
));
});
egui::CollapsingHeader::new(format!("CCD: {:.2}ms", counters.ccd_time_ms()))
- .id_source("ccd")
+ .id_salt("ccd")
.show(ui, |ui| {
ui.label(format!("# of substeps: {}", counters.ccd.num_substeps));
ui.label(format!(