20 package org.matsim.core.mobsim.qsim.qnetsimengine;
22 import org.apache.logging.log4j.LogManager;
23 import org.apache.logging.log4j.Logger;
28 import jakarta.inject.Inject;
29 import java.util.Collection;
41 class QueueAgentSnapshotInfoBuilder
extends AbstractAgentSnapshotInfoBuilder {
43 private static Logger log = LogManager.getLogger(QueueAgentSnapshotInfoBuilder.class);
46 QueueAgentSnapshotInfoBuilder(Scenario scenario, SnapshotLinkWidthCalculator linkWidthCalculator) {
47 super(scenario, linkWidthCalculator);
51 double calculateVehicleSpacing(
double curvedLength,
double overallStorageCapacity,
52 Collection<? extends VisVehicle> vehs) {
56 for ( VisVehicle veh : vehs ) {
57 sum += veh.getSizeInEquivalents() ;
61 curvedLength / overallStorageCapacity ,
67 double calculateOdometerDistanceFromFromNode(
68 double time,
double curvedLength,
double freespeed,
double spacing,
double prevVehiclesDistance,
double remainingTravelTime
72 if (curvedLength == 0) {
93 var result = curvedLength - freespeed * remainingTravelTime;
96 if (result < 0.0) { result = 0.0; }
101 if (Double.isNaN(prevVehiclesDistance)) {
102 prevVehiclesDistance = curvedLength + spacing;
106 if (result >= prevVehiclesDistance - spacing) {
107 result = prevVehiclesDistance - spacing;