UNPKG

@thi.ng/boids

Version:

n-dimensional boids simulation with modular behavior system

27 lines (26 loc) 604 B
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 };