use rapier2d::prelude::*;
#[derive(Debug, Clone)]
pub struct PhysicsConfig {
pub gravity: Vector<Real>,
pub ball_radius: Real,
pub restitution: Real,
pub friction: Real,
pub linear_damping: Real,
pub density: Real,
pub max_velocity: Real,
}
impl Default for PhysicsConfig {
fn default() -> Self {
Self {
gravity: vector![0.0, -9.81],
ball_radius: 0.15,
restitution: 0.7,
friction: 0.3,
linear_damping: 0.1,
density: 1.0,
max_velocity: 30.0,
}
}
}
impl PhysicsConfig {
pub fn with_gravity(gravity_strength: Real) -> Self {
Self {
gravity: vector![0.0, -gravity_strength],
..Default::default()
}
}
pub fn set_gravity(&mut self, gravity_strength: Real) {
self.gravity = vector![0.0, -gravity_strength];
}
}