Fix warnings

This commit is contained in:
Sébastien Crozet
2022-10-02 17:55:23 +02:00
parent 36e85d0708
commit a886529669
3 changed files with 21 additions and 4 deletions

View File

@@ -131,7 +131,7 @@ pub fn init_world(testbed: &mut Testbed) {
(run_state.time * 2.0).sin() * 2.0, (run_state.time * 2.0).sin() * 2.0,
(run_state.time * 5.0).sin() * 1.5 (run_state.time * 5.0).sin() * 1.5
]; ];
let angvel = run_state.time.sin() * 0.5; // let angvel = run_state.time.sin() * 0.5;
// Update the velocity-based kinematic body by setting its velocity. // Update the velocity-based kinematic body by setting its velocity.
if let Some(platform) = physics.bodies.get_mut(platform_handle) { if let Some(platform) = physics.bodies.get_mut(platform_handle) {

View File

@@ -26,6 +26,8 @@ pub enum CharacterLength {
} }
impl CharacterLength { impl CharacterLength {
/// Returns `self` with its value changed by the closure `f` if `self` is the `Self::Absolute`
/// variant.
pub fn map_absolute(self, f: impl FnOnce(Real) -> Real) -> Self { pub fn map_absolute(self, f: impl FnOnce(Real) -> Real) -> Self {
if let Self::Absolute(value) = self { if let Self::Absolute(value) = self {
Self::Absolute(f(value)) Self::Absolute(f(value))
@@ -34,6 +36,16 @@ impl CharacterLength {
} }
} }
/// Returns `self` with its value changed by the closure `f` if `self` is the `Self::Relative`
/// variant.
pub fn map_relative(self, f: impl FnOnce(Real) -> Real) -> Self {
if let Self::Relative(value) = self {
Self::Relative(f(value))
} else {
self
}
}
fn eval(self, value: Real) -> Real { fn eval(self, value: Real) -> Real {
match self { match self {
Self::Relative(x) => value * x, Self::Relative(x) => value * x,
@@ -647,6 +659,10 @@ impl KinematicCharacterController {
false false
} }
/// For a given collision between a character and its environment, this method will apply
/// impulses to the rigid-bodies surrounding the character shape at the time of the collision.
/// Note that the impulse calculation is only approximate as it is not based on a global
/// constraints resolution scheme.
pub fn solve_character_collision_impulses( pub fn solve_character_collision_impulses(
&self, &self,
dt: Real, dt: Real,

View File

@@ -8,8 +8,8 @@ use crate::plugin::TestbedPlugin;
use crate::{debug_render, ui}; use crate::{debug_render, ui};
use crate::{graphics::GraphicsManager, harness::RunState}; use crate::{graphics::GraphicsManager, harness::RunState};
use na::{self, Point2, Point3, Quaternion, Unit, Vector3}; use na::{self, Point2, Point3, Vector3};
use rapier::control::{CharacterAutostep, CharacterLength, KinematicCharacterController}; use rapier::control::KinematicCharacterController;
use rapier::dynamics::{ use rapier::dynamics::{
ImpulseJointSet, IntegrationParameters, MultibodyJointSet, RigidBodyActivation, ImpulseJointSet, IntegrationParameters, MultibodyJointSet, RigidBodyActivation,
RigidBodyHandle, RigidBodySet, RigidBodyHandle, RigidBodySet,
@@ -135,6 +135,7 @@ pub struct TestbedGraphics<'a, 'b, 'c, 'd, 'e, 'f> {
meshes: &'a mut Assets<Mesh>, meshes: &'a mut Assets<Mesh>,
materials: &'a mut Assets<BevyMaterial>, materials: &'a mut Assets<BevyMaterial>,
components: &'a mut Query<'b, 'f, (&'c mut Transform,)>, components: &'a mut Query<'b, 'f, (&'c mut Transform,)>,
#[allow(dead_code)] // Dead in 2D but not in 3D.
camera_transform: GlobalTransform, camera_transform: GlobalTransform,
camera: &'a mut OrbitCamera, camera: &'a mut OrbitCamera,
} }
@@ -662,7 +663,7 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> {
.unwrap() .unwrap()
.camera_transform .camera_transform
.to_scale_rotation_translation(); .to_scale_rotation_translation();
let rot = Unit::new_unchecked(Quaternion::new(rot.w, rot.x, rot.y, rot.z)); let rot = na::Unit::new_unchecked(na::Quaternion::new(rot.w, rot.x, rot.y, rot.z));
let mut rot_x = rot * Vector::x(); let mut rot_x = rot * Vector::x();
let mut rot_z = rot * Vector::z(); let mut rot_z = rot * Vector::z();
rot_x.y = 0.0; rot_x.y = 0.0;