UNPKG

@thi.ng/boids

Version:

n-dimensional boids simulation with modular behavior system

26 lines (25 loc) 767 B
import { clamp2 as $clamp2, clamp3 as $clamp3 } from "@thi.ng/vectors/clamp"; const clamp2 = (min, max) => (p) => $clamp2(p, p, min, max); const clamp3 = (min, max) => (p) => $clamp3(p, p, min, max); const __wrap = (p, i, x, min, max) => { if (x < min || x > max) { p[i] = x < min ? x - min + max : x > max ? x - max + min : x; return true; } }; const wrap2 = (min, max) => (p, boid) => { if (__wrap(p, 0, p[0], min[0], max[0]) || __wrap(p, 1, p[1], min[1], max[1])) boid.pos.reset(p); return p; }; const wrap3 = (min, max) => (p, boid) => { if (__wrap(p, 0, p[0], min[0], max[0]) || __wrap(p, 1, p[1], min[1], max[1]) || __wrap(p, 2, p[2], min[2], max[2])) boid.pos.reset(p); return p; }; export { clamp2, clamp3, wrap2, wrap3 };