package ar.edu.itba.pedestriansim.back.factory;

import ar.edu.itba.pedestriansim.back.entity.PedestrianAppConfig;
import ar.edu.itba.pedestriansim.back.entity.PedestrianForces;
import ar.edu.itba.pedestriansim.back.entity.force.ExponentialRepulsionForce;
import ar.edu.itba.pedestriansim.back.entity.force.PedestrianFutureAdjustmentForce;
import ar.edu.itba.pedestriansim.back.entity.force.ReactionDistanceDesireForce;
import ar.edu.itba.pedestriansim.back.entity.force.SpringForceModel;

public class PedestrianForcesFactory {

	public PedestrianForces build(PedestrianAppConfig config) {
		PedestrianForces forces = new PedestrianForces();
		forces.setRepulsionForceModel(new ExponentialRepulsionForce(config.alpha(), config.beta()));
		forces.setWallRepulsionForceModel(new ExponentialRepulsionForce(config.wallAlpha(), config.wallBeta()));
		forces.setExternalForceRadiusThreshold(config.getExternalForceRadiusThreshold());
		forces.setExternalForceThreshold(config.getExternalForceThreshold());
		forces.setDesireForce(new ReactionDistanceDesireForce());
		forces.setForceOnFuture(new PedestrianFutureAdjustmentForce(150, 10, 0));
		forces.setCollisitionModel(new SpringForceModel());
		return forces;
	}

}

@@ -1125,16 +1125,17 @@
 50, 10, 
+5
 0));%0A%09%09f

ajuste de valores del future del peaton