UNPKG

@dominicstop/utils

Version:

Yet another event emitter written in typescript.

33 lines (32 loc) 940 B
"use strict"; 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; ;