aboutsummaryrefslogtreecommitdiff
path: root/src_testbed
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2024-01-27 16:49:53 +0100
committerSébastien Crozet <sebastien@crozet.re>2024-01-27 17:13:08 +0100
commitda92e5c2837b27433286cf0dd9d887fd44dda254 (patch)
tree00428ce290288f5c64e53dee13d88ffdde4df0ca /src_testbed
parentaef873f20e7a1ee66b9d4c066884fa794048587b (diff)
downloadrapier-da92e5c2837b27433286cf0dd9d887fd44dda254.tar.gz
rapier-da92e5c2837b27433286cf0dd9d887fd44dda254.tar.bz2
rapier-da92e5c2837b27433286cf0dd9d887fd44dda254.zip
Fix clippy and enable clippy on CI
Diffstat (limited to 'src_testbed')
-rw-r--r--src_testbed/camera2d.rs1
-rw-r--r--src_testbed/camera3d.rs1
-rw-r--r--src_testbed/debug_render.rs6
-rw-r--r--src_testbed/graphics.rs7
-rw-r--r--src_testbed/harness/mod.rs10
-rw-r--r--src_testbed/lib.rs2
-rw-r--r--src_testbed/objects/node.rs2
-rw-r--r--src_testbed/physics/mod.rs10
-rw-r--r--src_testbed/testbed.rs59
-rw-r--r--src_testbed/ui.rs24
10 files changed, 70 insertions, 52 deletions
diff --git a/src_testbed/camera2d.rs b/src_testbed/camera2d.rs
index d49a912..6ba17a1 100644
--- a/src_testbed/camera2d.rs
+++ b/src_testbed/camera2d.rs
@@ -35,6 +35,7 @@ impl Default for OrbitCamera {
// Adapted from the 3D orbit camera from bevy-orbit-controls
pub struct OrbitCameraPlugin;
impl OrbitCameraPlugin {
+ #[allow(clippy::type_complexity)]
fn update_transform_system(
mut query: Query<(&OrbitCamera, &mut Transform), (Changed<OrbitCamera>, With<Camera>)>,
) {
diff --git a/src_testbed/camera3d.rs b/src_testbed/camera3d.rs
index e7c2945..9c3764e 100644
--- a/src_testbed/camera3d.rs
+++ b/src_testbed/camera3d.rs
@@ -46,6 +46,7 @@ impl Default for OrbitCamera {
pub struct OrbitCameraPlugin;
impl OrbitCameraPlugin {
+ #[allow(clippy::type_complexity)]
fn update_transform_system(
mut query: Query<(&OrbitCamera, &mut Transform), (Changed<OrbitCamera>, With<Camera>)>,
) {
diff --git a/src_testbed/debug_render.rs b/src_testbed/debug_render.rs
index 4633865..0e0b8b8 100644
--- a/src_testbed/debug_render.rs
+++ b/src_testbed/debug_render.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::unnecessary_cast)] // Casts are needed for switching between f32/f64.
+
use crate::harness::Harness;
use bevy::gizmos::gizmos::Gizmos;
use bevy::prelude::*;
@@ -36,8 +38,8 @@ impl<'a> DebugRenderBackend for BevyLinesRenderBackend<'a> {
#[cfg(feature = "dim2")]
fn draw_line(&mut self, _: DebugRenderObject, a: Point<Real>, b: Point<Real>, color: [f32; 4]) {
self.gizmos.line(
- [a.x as f32, a.y as f32, 1.0e-8 as f32].into(),
- [b.x as f32, b.y as f32, 1.0e-8 as f32].into(),
+ [a.x as f32, a.y as f32, 1.0e-8].into(),
+ [b.x as f32, b.y as f32, 1.0e-8].into(),
Color::hsla(color[0], color[1], color[2], color[3]),
)
}
diff --git a/src_testbed/graphics.rs b/src_testbed/graphics.rs
index 847258d..552d4c7 100644
--- a/src_testbed/graphics.rs
+++ b/src_testbed/graphics.rs
@@ -253,7 +253,7 @@ impl GraphicsManager {
// }
// }
- let nodes = self.b2sn.entry(handle).or_insert_with(Vec::new);
+ let nodes = self.b2sn.entry(handle).or_default();
nodes.append(&mut new_nodes.clone());
@@ -276,10 +276,7 @@ impl GraphicsManager {
.copied()
.unwrap_or(self.ground_color);
let color = self.c2color.get(&handle).copied().unwrap_or(color);
- let mut nodes = std::mem::replace(
- self.b2sn.entry(collider_parent).or_insert(vec![]),
- Vec::new(),
- );
+ let mut nodes = std::mem::take(self.b2sn.entry(collider_parent).or_default());
self.add_shape(
commands,
meshes,
diff --git a/src_testbed/harness/mod.rs b/src_testbed/harness/mod.rs
index 9608592..e27a03a 100644
--- a/src_testbed/harness/mod.rs
+++ b/src_testbed/harness/mod.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::unnecessary_cast)] // Casts are needed for switching between f32/f64.
+
use crate::{
physics::{PhysicsEvents, PhysicsState},
TestbedGraphics,
@@ -22,6 +24,12 @@ pub struct RunState {
pub time: f32,
}
+impl Default for RunState {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl RunState {
#[cfg(feature = "parallel")]
pub fn new() -> Self {
@@ -33,7 +41,7 @@ impl RunState {
.unwrap();
Self {
- thread_pool: thread_pool,
+ thread_pool,
num_threads,
timestep_id: 0,
time: 0.0,
diff --git a/src_testbed/lib.rs b/src_testbed/lib.rs
index 12339e5..cb24d7e 100644
--- a/src_testbed/lib.rs
+++ b/src_testbed/lib.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::too_many_arguments)]
+
extern crate nalgebra as na;
#[macro_use]
diff --git a/src_testbed/objects/node.rs b/src_testbed/objects/node.rs
index 8ddffab..cdc042b 100644
--- a/src_testbed/objects/node.rs
+++ b/src_testbed/objects/node.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::unnecessary_cast)] // Casts are needed for switching between f32/f64.
+
use bevy::prelude::*;
use bevy::render::mesh::{Indices, VertexAttributeValues};
diff --git a/src_testbed/physics/mod.rs b/src_testbed/physics/mod.rs
index 60214da..26a55c7 100644
--- a/src_testbed/physics/mod.rs
+++ b/src_testbed/physics/mod.rs
@@ -86,6 +86,12 @@ pub struct PhysicsState {
pub hooks: Box<dyn PhysicsHooks>,
}
+impl Default for PhysicsState {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
impl PhysicsState {
pub fn new() -> Self {
Self {
@@ -113,7 +119,7 @@ pub struct PhysicsEvents {
impl PhysicsEvents {
pub fn poll_all(&self) {
- while let Ok(_) = self.collision_events.try_recv() {}
- while let Ok(_) = self.contact_force_events.try_recv() {}
+ while self.collision_events.try_recv().is_ok() {}
+ while self.contact_force_events.try_recv().is_ok() {}
}
}
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index 50e6c7a..e5a5f13 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -1,3 +1,5 @@
+#![allow(clippy::bad_bit_mask)] // otherwsie clippy complains because of TestbedStateFlags::NONE which is 0.
+
use std::env;
use std::mem;
use std::num::NonZeroUsize;
@@ -107,6 +109,8 @@ pub enum RapierSolverType {
StandardPgs,
}
+pub type SimulationBuilders = Vec<(&'static str, fn(&mut Testbed))>;
+
#[derive(Resource)]
pub struct TestbedState {
pub running: RunMode,
@@ -135,7 +139,7 @@ pub struct TestbedState {
}
#[derive(Resource)]
-struct SceneBuilders(Vec<(&'static str, fn(&mut Testbed))>);
+struct SceneBuilders(SimulationBuilders);
#[cfg(feature = "other-backends")]
struct OtherBackends {
@@ -237,7 +241,7 @@ impl TestbedApp {
}
}
- pub fn from_builders(default: usize, builders: Vec<(&'static str, fn(&mut Testbed))>) -> Self {
+ pub fn from_builders(default: usize, builders: SimulationBuilders) -> Self {
let mut res = TestbedApp::new_empty();
res.state
.action_flags
@@ -247,7 +251,7 @@ impl TestbedApp {
res
}
- pub fn set_builders(&mut self, builders: Vec<(&'static str, fn(&mut Testbed))>) {
+ pub fn set_builders(&mut self, builders: SimulationBuilders) {
self.state.example_names = builders.iter().map(|e| e.0).collect();
self.builders = SceneBuilders(builders)
}
@@ -280,7 +284,7 @@ impl TestbedApp {
use std::io::{BufWriter, Write};
// Don't enter the main loop. We will just step the simulation here.
let mut results = Vec::new();
- let builders = mem::replace(&mut self.builders.0, Vec::new());
+ let builders = mem::take(&mut self.builders.0);
let backend_names = self.state.backend_names.clone();
for builder in builders {
@@ -423,8 +427,7 @@ impl TestbedApp {
impl<'a, 'b, 'c, 'd, 'e, 'f> TestbedGraphics<'a, 'b, 'c, 'd, 'e, 'f> {
pub fn set_body_color(&mut self, body: RigidBodyHandle, color: [f32; 3]) {
- self.graphics
- .set_body_color(&mut self.materials, body, color);
+ self.graphics.set_body_color(self.materials, body, color);
}
pub fn add_body(
@@ -466,7 +469,7 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> TestbedGraphics<'a, 'b, 'c, 'd, 'e, 'f> {
}
pub fn keys(&self) -> &Input<KeyCode> {
- &*self.keys
+ self.keys
}
}
@@ -497,7 +500,7 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> {
}
pub fn harness_mut(&mut self) -> &mut Harness {
- &mut self.harness
+ self.harness
}
pub fn set_world(
@@ -1110,30 +1113,30 @@ fn update_testbed(
// Handle inputs
{
let graphics_context = TestbedGraphics {
- graphics: &mut *graphics,
+ graphics: &mut graphics,
commands: &mut commands,
meshes: &mut *meshes,
materials: &mut *materials,
components: &mut gfx_components,
camera_transform: *cameras.single().1,
camera: &mut cameras.single_mut().2,
- keys: &*keys,
+ keys: &keys,
};
let mut testbed = Testbed {
graphics: Some(graphics_context),
- state: &mut *state,
- harness: &mut *harness,
+ state: &mut state,
+ harness: &mut harness,
#[cfg(feature = "other-backends")]
- other_backends: &mut *other_backends,
- plugins: &mut *plugins,
+ other_backends: &mut other_backends,
+ plugins: &mut plugins,
};
- testbed.handle_common_events(&*keys);
- testbed.update_character_controller(&*keys);
+ testbed.handle_common_events(&keys);
+ testbed.update_character_controller(&keys);
#[cfg(feature = "dim3")]
{
- testbed.update_vehicle_controller(&*keys);
+ testbed.update_vehicle_controller(&keys);
}
}
@@ -1144,7 +1147,7 @@ fn update_testbed(
for plugin in &mut plugins.0 {
plugin.update_ui(
- &mut ui_context,
+ &ui_context,
harness,
&mut graphics,
&mut commands,
@@ -1190,10 +1193,10 @@ fn update_testbed(
.set(TestbedActionFlags::EXAMPLE_CHANGED, false);
clear(&mut commands, &mut state, &mut graphics, &mut plugins);
harness.clear_callbacks();
- for plugin in (*plugins).0.iter_mut() {
+ for plugin in plugins.0.iter_mut() {
plugin.clear_graphics(&mut graphics, &mut commands);
}
- (*plugins).0.clear();
+ plugins.0.clear();
if state.selected_example != prev_example {
harness.physics.integration_parameters = IntegrationParameters::default();
@@ -1219,16 +1222,16 @@ fn update_testbed(
components: &mut gfx_components,
camera_transform: *cameras.single().1,
camera: &mut cameras.single_mut().2,
- keys: &*keys,
+ keys: &keys,
};
let mut testbed = Testbed {
graphics: Some(graphics_context),
- state: &mut *state,
- harness: &mut *harness,
+ state: &mut state,
+ harness: &mut harness,
#[cfg(feature = "other-backends")]
- other_backends: &mut *other_backends,
- plugins: &mut *plugins,
+ other_backends: &mut other_backends,
+ plugins: &mut plugins,
};
builders.0[selected_example].1(&mut testbed);
@@ -1371,7 +1374,7 @@ fn update_testbed(
components: &mut gfx_components,
camera_transform: *cameras.single().1,
camera: &mut cameras.single_mut().2,
- keys: &*keys,
+ keys: &keys,
};
harness.step_with_graphics(Some(&mut testbed_graphics));
@@ -1425,8 +1428,8 @@ fn update_testbed(
for (camera, camera_pos, _) in cameras.iter_mut() {
highlight_hovered_body(
&mut *materials,
- &mut *graphics,
- &mut *state,
+ &mut graphics,
+ &mut state,
&harness.physics,
window,
camera,
diff --git a/src_testbed/ui.rs b/src_testbed/ui.rs
index f81ae6d..7d50f62 100644
--- a/src_testbed/ui.rs
+++ b/src_testbed/ui.rs
@@ -44,22 +44,18 @@ pub fn update_ui(
}
ui.horizontal(|ui| {
- if ui.button("<").clicked() {
- if state.selected_example > 0 {
- state.selected_example -= 1;
- state
- .action_flags
- .set(TestbedActionFlags::EXAMPLE_CHANGED, true)
- }
+ if ui.button("<").clicked() && state.selected_example > 0 {
+ state.selected_example -= 1;
+ state
+ .action_flags
+ .set(TestbedActionFlags::EXAMPLE_CHANGED, true)
}
- if ui.button(">").clicked() {
- if state.selected_example + 1 < state.example_names.len() {
- state.selected_example += 1;
- state
- .action_flags
- .set(TestbedActionFlags::EXAMPLE_CHANGED, true)
- }
+ if ui.button(">").clicked() && state.selected_example + 1 < state.example_names.len() {
+ state.selected_example += 1;
+ state
+ .action_flags
+ .set(TestbedActionFlags::EXAMPLE_CHANGED, true)
}
let mut changed = false;