| /** | |
| * @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; | |
| } | |
| } |