package vroom.trsp.datamodel;
import vroom.common.modeling.dataModel.INodeVisit;
import vroom.common.modeling.dataModel.Node;
import vroom.common.modeling.dataModel.Vehicle;
/**
* <code>TRSPDistTimeMatrix</code>
* <p>
* Creation date: Jun 13, 2012 - 11:40:31 AM
*
* @author Victor Pillac, <a href="http://uniandes.edu.co">Universidad de Los Andes</a>-<a
* href="http://copa.uniandes.edu.co">Copa</a> <a href="http://www.emn.fr">Ecole des Mines de Nantes</a>-<a
* href="http://www.irccyn.ec-nantes.fr/irccyn/d/en/equipes/Slp">SLP</a>
* @version 1.0
*/
public class TRSPDistTimeMatrix extends TRSPDistanceMatrix {
private final double[][] mTimeMatrix;
/**
* Creates a new <code>TRSPDistTimeMatrix</code>
*
* @param instance
* @param distTimeMatrix
*/
public TRSPDistTimeMatrix(TRSPInstance instance, double[][][] distTimeMatrix) {
super(instance, distTimeMatrix[0]);
mTimeMatrix = new double[instance.getMaxId()][instance.getMaxId()];
for (int i = 0; i < instance.getMaxId(); i++) {
for (int j = 0; j < instance.getMaxId(); j++) {
int idi = instance.getOriginalId(i);
int idj = instance.getOriginalId(j);
mTimeMatrix[i][j] = distTimeMatrix[1][i][j];
}
}
}
@Override
public double getTravelTime(INodeVisit origin, INodeVisit destination, Vehicle vehicle) {
return mTimeMatrix[origin.getID()][destination.getID()];
}
@Override
public double getTravelTime(int o, int d, Technician technician) {
return mTimeMatrix[o][d];
}
@Override
public double getTravelTime(Node origin, Node destination, Vehicle vehicle) {
return mTimeMatrix[origin.getID()][destination.getID()];
}
}