@dominicstop/utils
Version:
Yet another event emitter written in typescript.
33 lines (32 loc) • 940 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DampingForce = void 0;
/**
* Applies a damping force to reduce velocity over time.
* This force is used for simulating friction or air resistance.
*/
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);
}
;
}
exports.DampingForce = DampingForce;
;