/** * @classdesc Abstract class for swimmer morphologies. */ class SwimmerAbstractBody extends AbstractBody{ /** * @constructor * @param scale {number} - Scale of the environment * @param motors_torque {number} * @param density {number} - Density of the agent's body. * @param nb_steps_outside_water {number} */ constructor(scale, motors_torque, density, nb_steps_outside_water) { super(scale, motors_torque); this.body_type = BodyTypesEnum.SWIMMER; this.nb_steps_can_survive_outside_water = nb_steps_outside_water; // set the embodiment's density to the same value as water so that it will be in a zero-gravity setup this.DENSITY = density - 0.01; // Make it a little lighter such that it slowly goes up when no action is done } destroy(world) { super.destroy(world); this.fins = []; this.tail = null; } }