ajout: Ajout du mode de déplacement en vélo

This commit is contained in:
Brendan Saint Germes 2026-05-19 08:24:43 +02:00
parent 369b12ee76
commit 0b08b70cb9

View file

@ -110,6 +110,70 @@ public class ArcInspectorFactory {
}
};
private static class BicyleByTime implements ArcInspector {
static int maxBicycleSpeed = 20;
@Override
public boolean isAllowed(Arc arc) {
return arc.getRoadInformation().getAccessRestrictions().isAllowedForAny(
AccessMode.BICYCLE,
EnumSet.complementOf(EnumSet.of(AccessRestriction.FORBIDDEN,
AccessRestriction.PRIVATE)));
}
@Override
public double getCost(Arc arc) {
return arc.getTravelTime(Math.min(maxBicycleSpeed, arc.getRoadInformation().getMaximumSpeed()));
}
@Override
public int getMaximumSpeed() {
return 20;
}
@Override
public Mode getMode() {
return Mode.TIME;
}
@Override
public String toString() {
return "Le plus rapide, chemin accessible en vélo uniquement";
}
}
private static class BicyleByLength implements ArcInspector {
static int maxBicycleSpeed = 20;
@Override
public boolean isAllowed(Arc arc) {
return arc.getRoadInformation().getAccessRestrictions().isAllowedForAny(
AccessMode.BICYCLE,
EnumSet.complementOf(EnumSet.of(AccessRestriction.FORBIDDEN,
AccessRestriction.PRIVATE)));
}
@Override
public double getCost(Arc arc) {
return arc.getLength();
}
@Override
public int getMaximumSpeed() {
return 20;
}
@Override
public Mode getMode() {
return Mode.LENGTH;
}
@Override
public String toString() {
return "Le plus court, chemin accessible en vélo uniquement";
}
}
/**
* @return List of all arc filters in this factory.
*/
@ -118,7 +182,7 @@ public class ArcInspectorFactory {
// to get an understandable output!):
return Arrays.asList(new NoFilterByLengthArcInspector(),
new OnlyCarsByLengthArcInspector(), new OnlyCarsByTimeArcInspector(),
new OnlyPedestrianByTime());
new OnlyPedestrianByTime(), new BicyleByLength(), new BicyleByTime());
}
}