UNPKG

@thi.ng/boids

Version:

n-dimensional boids simulation with modular behavior system

41 lines (40 loc) 834 B
import {} from "@thi.ng/api"; class Radial { constructor(dist, target, radius = Infinity) { this.dist = dist; this.target = target; this.setRadius(radius); } radius; _r; _items = []; deref() { return this._items; } reset() { this._items.length = 0; return this; } setRadius(r) { if (this.radius !== r) { this.radius = Math.max(0, r); this._r = this.dist.to(this.radius); } this._items.length = 0; return this; } 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 };