@Override public void handleEvent(TeleportationArrivalEvent event) { if (eventCounter.incrementAndGet() > maxEvents) return; try { if (transitDriverIds.contains(event.getPersonId())) return; TravellerChain chain = chains.get(event.getPersonId()); if (chain.traveledVehicle) chain.traveledVehicle = false; } catch (Exception e) { System.err.println(e.getStackTrace()); System.err.println(event.toString()); } }
this.events.processEvent(new PersonLeavesVehicleEvent(time, pId, vId)); } else if (TeleportationArrivalEvent.EVENT_TYPE.equals(eventType)) { this.events.processEvent(new TeleportationArrivalEvent( time, Id.create(atts.getValue(TeleportationArrivalEvent.ATTRIBUTE_PERSON), Person.class),
@Override public void handleEvent(TeleportationArrivalEvent travelEvent) { routelessTravels.put(travelEvent.getPersonId(), travelEvent); }
genericRoute.setTravelTime(travelTime); if (travelEvent != null) { genericRoute.setDistance(travelEvent.getDistance()); } else { genericRoute.setDistance(0.0);
private void handleTeleportationArrivals() { double now = internalInterface.getMobsim().getSimTimer().getTimeOfDay(); while (teleportationList.peek() != null) { Tuple<Double, MobsimAgent> entry = teleportationList.peek(); if (entry.getFirst() <= now) { teleportationList.poll(); MobsimAgent personAgent = entry.getSecond(); personAgent.notifyArrivalOnLinkByNonNetworkMode(personAgent .getDestinationLinkId()); double distance = personAgent.getExpectedTravelDistance(); this.eventsManager.processEvent(new TeleportationArrivalEvent(this.internalInterface.getMobsim().getSimTimer().getTimeOfDay(), personAgent.getId(), distance)); personAgent.endLegAndComputeNextState(now); this.teleportationData.remove(personAgent.getId()); internalInterface.arrangeNextAgentState(personAgent); } else { break; } } }
TransitWalkTimeAndDistance tnd = new TransitWalkTimeAndDistance(act.getCoord(), prevAct.getCoord()); travelTime = tnd.time; eventQueue.add(new TeleportationArrivalEvent(prevEndTime + tnd.time, personId, tnd.distance)); Route route = prevLeg.getRoute(); travelTime = route.getTravelTime(); eventQueue.add(new TeleportationArrivalEvent(prevEndTime + travelTime, personId, route.getDistance()
@Test public void testCreatesLeg() { Scenario scenario = createTriangularNetwork(); EventsToLegs eventsToLegs = new EventsToLegs(scenario); RememberingLegHandler lh = new RememberingLegHandler(); eventsToLegs.addLegHandler(lh); eventsToLegs.handleEvent(new PersonDepartureEvent(10.0, Id.create("1", Person.class), Id.create("l1", Link.class), "walk")); eventsToLegs.handleEvent(new TeleportationArrivalEvent(30.0, Id.create("1", Person.class), 50.0)); eventsToLegs.handleEvent(new PersonArrivalEvent(30.0, Id.create("1", Person.class), Id.create("l2", Link.class), "walk")); Assert.assertNotNull(lh.handledLeg); Assert.assertEquals(10.0, lh.handledLeg.getLeg().getDepartureTime(), 1e-9); Assert.assertEquals(20.0, lh.handledLeg.getLeg().getTravelTime(), 1e-9); Assert.assertEquals(50.0, lh.handledLeg.getLeg().getRoute().getDistance(), 1e-9); }