diff --git a/src/main/java/cz/cvut/fel/aic/apdemo/graphbuilder/SimulationEdgeFactory.java b/src/main/java/cz/cvut/fel/aic/apdemo/graphbuilder/SimulationEdgeFactory.java index 7242a7b..349c1cd 100644 --- a/src/main/java/cz/cvut/fel/aic/apdemo/graphbuilder/SimulationEdgeFactory.java +++ b/src/main/java/cz/cvut/fel/aic/apdemo/graphbuilder/SimulationEdgeFactory.java @@ -6,22 +6,34 @@ package cz.cvut.fel.aic.apdemo.graphbuilder; import cz.cvut.fel.aic.agentpolis.simmodel.environment.transportnetwork.elements.EdgeShape; +import cz.cvut.fel.aic.agentpolis.simmodel.environment.transportnetwork.elements.Lane; +import cz.cvut.fel.aic.agentpolis.simmodel.environment.transportnetwork.elements.LaneBuilder; import cz.cvut.fel.aic.agentpolis.simmodel.environment.transportnetwork.elements.SimulationEdge; import cz.cvut.fel.aic.graphimporter.structurebuilders.client.EdgeFactory; import cz.cvut.fel.aic.graphimporter.structurebuilders.internal.InternalEdge; +import java.util.List; + /** * @author fido */ public class SimulationEdgeFactory extends EdgeFactory { + private LaneBuilder laneBuilder = new LaneBuilder(); @Override public SimulationEdge createEdge(InternalEdge internalEdge) { + int uniqueID = internalEdge.get("uniqueWayID"); + int lanesCount = internalEdge.get("lanesCount"); EdgeShape shape = new EdgeShape(internalEdge.get("coordinateList")); - return new SimulationEdge(internalEdge.fromId, internalEdge.toId, internalEdge.get("wayID"), - internalEdge.get("uniqueWayID"), internalEdge.get("oppositeWayUniqueId"), internalEdge.getLength(), + List lanes = laneBuilder.createLanes(uniqueID, internalEdge.get("lanesTurn"), lanesCount); + + return new SimulationEdge(internalEdge.fromId, internalEdge.toId, + internalEdge.get("uniqueWayID"), + internalEdge.get("oppositeWayUniqueId"), + internalEdge.getLength(), internalEdge.get("allowedMaxSpeedInMpS"), - internalEdge.get("lanesCount"), shape); + lanesCount, + shape, + lanes); } - }