UNPKG

@dominicstop/utils

Version:

Yet another event emitter written in typescript.

29 lines (28 loc) 802 B
/** * Applies a damping force to reduce velocity over time. * This force is used for simulating friction or air resistance. */ export class DampingForce { constructor(dampingFactor, isActive = true) { this.dampingFactor = dampingFactor; this.isActive = isActive; } ; /** * Applies a force: * `F = -dampingFactor * particle.velocity`. * * This simulates friction or air resistance to stabilize * the system or slow particles down. * * @param particle The particle to apply the force to. */ apply(particle) { if (!this.isActive || particle.isStatic) return; const dampingForce = particle.velocity.multipliedByScalar(-this.dampingFactor); particle.applyForce(dampingForce); } ; } ;