From d044295b758cfed0d8b6a8a8b15ab75aa7d1d332 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lynn=20B=C3=BCttgenbach?= <62256001+lynn-lumen@users.noreply.github.com> Date: Fri, 11 Jul 2025 14:29:10 +0200 Subject: [PATCH] Better interior sampling --- crates/bevy_math/src/sampling/shape_sampling.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/crates/bevy_math/src/sampling/shape_sampling.rs b/crates/bevy_math/src/sampling/shape_sampling.rs index 65dcaa8aa1..348333ef70 100644 --- a/crates/bevy_math/src/sampling/shape_sampling.rs +++ b/crates/bevy_math/src/sampling/shape_sampling.rs @@ -230,13 +230,9 @@ impl ShapeSample for Rhombus { fn sample_interior(&self, rng: &mut R) -> Vec2 { let x: f32 = rng.gen_range(0.0..1.0); let y: f32 = rng.gen_range(0.0..1.0); - let sign = if rng.r#gen() { Vec2::ONE } else { Vec2::new(-1.0, 1.0) }; - let p = if ops::abs(x) + ops::abs(y) > 1.0 { - Vec2::new(x, y) - Vec2::ONE - } else { - Vec2::new(x, y) - }; - p * sign * self.half_diagonals + + let unit_p = Vec2::NEG_X + x * Vec2::ONE + Vec2::new(y, -y); + unit_p * self.half_diagonals } fn sample_boundary(&self, rng: &mut R) -> Vec2 {