From b0a1676fd213fcfe07d4df61265a69c0525cd209 Mon Sep 17 00:00:00 2001 From: Zynh Ludwig Date: Tue, 3 Sep 2024 20:39:29 -0700 Subject: [PATCH] seperation --- src/main.rs | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1b6d316..1bb5c01 100644 --- a/src/main.rs +++ b/src/main.rs @@ -83,12 +83,32 @@ fn build_local_cache( }); } -fn seperation( - mut boids: Query<(&Transform, &LocalCache, &mut SeperationAcceleration), With>, +fn cohesion( + mut boids: Query<(&Transform, &LocalCache, &mut CohesionAcceleration), With>, + other_boids: Query<&Transform, With>, ) { } -fn cohesion(mut boids: Query<(&Transform, &LocalCache, &mut CohesionAcceleration), With>) {} +fn seperation( + mut boids: Query<(&Transform, &LocalCache, &mut SeperationAcceleration), With>, + other_boids: Query<&Transform, With>, +) { + boids + .par_iter_mut() + .for_each(|(transform, local, mut accel)| { + accel.0 = Vec2::ZERO; + + let mut count = 0; + for transform in other_boids.iter_many(&local.0[..]) { + accel.0 += transform.translation.xy(); + + count += 1; + } + + accel.0 /= count as f32; + accel.0 = transform.translation.xy() - accel.0; + }) +} fn alignment( mut boids: Query<(&Velocity, &LocalCache, &mut AlignmentAcceleration), With>,