UNPKG

@thi.ng/boids

Version:

n-dimensional boids simulation with modular behavior system

38 lines (37 loc) 784 B
import {} from "@thi.ng/api"; class Radial { constructor(dist, target, radius = Infinity) { this.dist = dist; this.target = target; this.radius = radius; this.setRadius(radius); } _r; _items = []; deref() { return this._items; } reset() { this._items.length = 0; return this; } setRadius(r) { this.radius = Math.max(0, r); this._r = this.dist.to(this.radius); this.reset(); } includesDistance(d, eucledian = true) { return (eucledian ? this.dist.to(d) : d) <= this._r; } includesPosition(pos) { return this.dist.metric(this.target, pos) <= this._r; } consider(pos, val) { const d = this.dist.metric(this.target, pos); d <= this._r && this._items.push(val); return d; } } export { Radial };