/** * Returns all {@link RoadUser}s of type <code> type</code> in <code>model</code> that are * <strong>within</strong> a bird-flight distance of <code>radius</code> to <code>position</code>. * * @param position The position which is used to measure distance. * @param model The {@link RoadModel} which contains the objects. * @param radius Objects with a distance smaller than <code>radius</code> to <code>position</code> * are included. * @param type The {@link Class} of the required type. * @param <T> The type of the objects in the returned collection. * @return A collection of type <code>type</code>. */ public static <T extends RoadUser> Collection<T> findObjectsWithinRadius( final Point position, final RoadModel model, final double radius, final Class<T> type) { return RoadModels.findObjectsWithinRadius( position, model, radius, model.getObjectsOfType(type)); }
/** * Returns all {@link RoadUser}s in <code>model</code> that are <strong>within</strong> a * bird-flight distance of <code>radius</code> to <code>position</code>. * * @param position The position which is used to measure distance. * @param model The {@link RoadModel} which contains the objects. * @param radius Objects with a distance smaller than <code>radius</code> to <code>position</code> * are included. * @return A collection of {@link RoadUser}s. */ public static Collection<RoadUser> findObjectsWithinRadius( final Point position, final RoadModel model, final double radius) { return RoadModels.findObjectsWithinRadius(position, model, radius, model.getObjects()); }
/** * Searches the closest <code>n</code> objects to position <code>pos</code> in {@link RoadModel} * <code>rm</code>. * * @param pos The {@link Point} which is used as a reference point. * @param rm The {@link RoadModel} instance in which the closest objects are searched. * @param type The type of objects which are included in the search. * @param n The maximum number of objects to return where n must be ≥ 0. * @param <T> The type of the objects in the returned collection. * @return A list of objects that are closest to <code>pos</code>. The list is ordered such that * the closest object appears first. An empty list is returned when <code>objects</code> is * empty. */ public static <T extends RoadUser> List<T> findClosestObjects( Point pos, RoadModel rm, Class<T> type, int n) { return RoadModels.findClosestObjects(pos, rm, rm.getObjectsOfType(type), n); }
/** * Searches the closest <code>n</code> objects to position <code>pos</code> in {@link RoadModel} * <code>rm</code>. Only the objects that satisfy <code>predicate</code> are included in the * search. * * @param pos The {@link Point} which is used as a reference point. * @param rm The {@link RoadModel} instance in which the closest objects are searched. * @param predicate Only objects that satisfy this predicate will be returned. * @param n The maximum number of objects to return where n must be ≥ 0. * @return A list of objects that are closest to <code>pos</code>. The list is ordered such that * the closest object appears first. An empty list is returned when <code>objects</code> is * empty. */ public static List<RoadUser> findClosestObjects( Point pos, RoadModel rm, Predicate<RoadUser> predicate, int n) { final Collection<RoadUser> filtered = Collections2.filter(rm.getObjects(), predicate); return RoadModels.findClosestObjects(pos, rm, filtered, n); }
/** * Searches the closest <code>n</code> objects to position <code>pos</code> in {@link RoadModel} * <code>rm</code>. * * @param pos The {@link Point} which is used as a reference point. * @param rm The {@link RoadModel} instance in which the closest objects are searched. * @param n The maximum number of objects to return where n must be ≥ 0. * @return A list of objects that are closest to <code>pos</code>. The list is ordered such that * the closest object appears first. An empty list is returned when <code>objects</code> is * empty. */ public static List<RoadUser> findClosestObjects(Point pos, RoadModel rm, int n) { return RoadModels.findClosestObjects(pos, rm, RoadUser.class, n); }
/** * Returns a list of objects from {@link RoadModel} <code>rm</code> ordered by its distance to * position <code>pos</code>. * * @param pos The {@link Point} which is used as a reference point. * @param rm The {@link RoadModel} instance in which the closest objects are searched. * @return A list of objects that are closest to <code>pos</code>. The list is ordered such that * the closest object appears first. An empty list is returned when <code>objects</code> is * empty. */ public static List<RoadUser> findClosestObjects(Point pos, RoadModel rm) { return RoadModels.findClosestObjects(pos, rm, RoadUser.class, Integer.MAX_VALUE); }