@thi.ng/boids
Version:
n-dimensional boids simulation with modular behavior system
27 lines (26 loc) • 604 B
JavaScript
import { integrateAll, interpolateAll } from "@thi.ng/timestep/timestep";
const defFlock = (accel, boids) => new Flock(accel, boids);
class Flock {
constructor(accel, boids = []) {
this.accel = accel;
this.boids = boids;
}
add(boid) {
this.boids.push(boid);
}
remove(boid) {
const idx = this.boids.indexOf(boid);
if (idx >= 0) this.boids.splice(idx, 1);
}
integrate(dt, ctx) {
this.accel.build(this.boids);
integrateAll(dt, ctx, ...this.boids);
}
interpolate(alpha, ctx) {
interpolateAll(alpha, ctx, ...this.boids);
}
}
export {
Flock,
defFlock
};