behaviors_Gravity.js

const SelfBehavior = require("./SelfBehavior");

/**
 * `Gravity` is a `SelfBehavior` that applies a constant acceleration downwards.
 *  @extends {SelfBehavior}
 */
class Gravity extends SelfBehavior {
	/**
	 * Instantiates new Gravity behavior object
	 * @constructor
	 */     
    constructor(acceleration) {
        super();
        this.acceleration = acceleration;
    }

    /**
     * @override
     * @param {Particle} particle 
     * @param {Number} timeStep 
     */
    applyBehavior(particle, timeStep) {
        //particle.applyAcceleration(this.acceleration, timeStep);
        particle.pos.addTo(this.acceleration.mult(timeStep * timeStep));
    }

    /**
     * @override
     * @param {Particle} particle 
     */
	applyCorrection(particle) {
        return;
    }
}

module.exports = Gravity;