@Override public void tick(TimeLapse timeLapse) { if (!destination.isPresent()) { nextDestination(); } final MoveProgress mp = roadModel.get().moveTo(this, destination.get(), timeLapse); if (roadModel.get().getPosition(this).equals(destination.get()) || stuckTickCount >= MAX_STUCK_TICK_COUNT) { nextDestination(); stuckTickCount = 0; } else if (mp.distance().getValue().doubleValue() == 0d) { stuckTickCount++; } else { stuckTickCount = 0; } }
@Override public void tick(TimeLapse timeLapse) { if (!destination.isPresent()) { nextDestination(); } final MoveProgress mp = roadModel.get().moveTo(this, destination.get(), timeLapse); if (roadModel.get().getPosition(this).equals(destination.get()) || stuckTickCount >= MAX_STUCK_TICK_COUNT) { nextDestination(); stuckTickCount = 0; } else if (mp.distance().getValue().doubleValue() == 0d) { stuckTickCount++; } else { stuckTickCount = 0; } }
@Override protected MoveProgress doFollowPath(MovingRoadUser object, Queue<Point> path, TimeLapse time) { blockingRegistry.removeObject(object); final MoveProgress mp = super.doFollowPath(object, path, time); blockingRegistry.addAt(object, getPosition(object)); return mp; }
@Override public void tick(TimeLapse timeLapse) { if (dest == null) { dest = roadModel.get().getRandomPosition(randomGenerator); } roadModel.get().moveTo(this, dest, timeLapse); if (roadModel.get().getPosition(this).equals(dest)) { dest = null; } }
@Override public void tick(TimeLapse timeLapse) { final List<RoadUser> list = model.getObjects().asList(); for (int i = 0; i < list.size(); i++) { for (int j = i + 1; j < list.size(); j++) { final Point p1 = model.getPosition(list.get(i)); final Point p2 = model.getPosition(list.get(j)); assert_() .withMessage("%s is too close to %s", list.get(i), list.get(j)) .that(Point.distance(p1, p2)) .isAtLeast(599d); } } }
@Test public void addRUatOccupiedPosition() { final Point loc1 = new Point(1, 1); model.addObjectAt(ru1, loc1); final ParcelRU p1 = new ParcelRU(); final ParcelRU p2 = new ParcelRU(); final ParcelRU p3 = new ParcelRU(); model.addObjectAt(p1, loc1); model.addObjectAt(p2, loc1); model.addObjectAt(p3, loc1); assertThat(model.getPosition(ru1)).isEqualTo(loc1); assertThat(model.getPosition(p1)).isEqualTo(loc1); assertThat(model.getPosition(p2)).isEqualTo(loc1); assertThat(model.getPosition(p3)).isEqualTo(loc1); assertThat(ImmutableSet.copyOf(model.getObjectPositions())).hasSize(1); }
final Point pos = getPosition(ru); if (Point.distance(pos, from) <= objRadius * 2) { hit = true;
assertThat(Point.distance(model.getPosition(ru1), new Point(1.25, 1))) .isAtMost(PlaneRoadModel.DELTA); assertThat(mp.distance().doubleValue(SI.METER)) assertThat(Point.distance(model.getPosition(ru1), new Point(1.5, 1))) .isAtMost(PlaneRoadModel.DELTA); assertThat(mp2.distance().doubleValue(SI.METER)) assertThat(Point.distance(model.getPosition(ru1), new Point(1.5, 1))) .isAtMost(PlaneRoadModel.DELTA); assertThat(mp1c.distance().doubleValue(SI.METER)) model.moveTo(ru3, new Point(2.5, 1), tick()); assertThat(Point.distance(model.getPosition(ru3), model.getPosition(ru2))) .isGreaterThan(1d); assertThat(Point.distance(model.getPosition(ru3), model.getPosition(ru2))) .isWithin(PlaneRoadModel.DELTA).of(1d); .isWithin(PlaneRoadModel.DELTA).of(0d); assertThat(Point.distance(model.getPosition(ru3), model.getPosition(ru2))) .isWithin(PlaneRoadModel.DELTA).of(1d);
secondUav.getSpeed() * sim.getTimeStep() / 1.0e3; Point secondUavPositionBeforeTick = model.getPosition(secondUav); Point firstUavPositionBeforeTick = model.getPosition(firstUav); final Point firstUavPositionAfterTick = model.getPosition(firstUav); final Point secondUavPositionAfterTick = model.getPosition(secondUav);