|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectcz.cuni.amis.pogamut.base.utils.math.DistanceUtils
public class DistanceUtils
DistanceUtils consists of usual routines for selecting "X" from some "collections of Xes" that are in some "distance" relation to the "target", e.g., "get nearest weapon from collection of available weapons to my position".
Note that you may always use custom metric via DistanceUtils.IGetDistance interface.
Note that you may always use some custom filters via DistanceUtils.IDistanceFilter interface.
| Nested Class Summary | |
|---|---|
static class |
DistanceUtils.AcceptAllDistanceFilter<T>
Filter that accepts all "objects" (does not filter anything out). |
static class |
DistanceUtils.FilterAdapter<T>
Adapter that wraps IFilter making it into DistanceUtils.IDistanceFilter. |
static class |
DistanceUtils.GetLocatedDistance2D<T extends ILocated>
Simple implementation of DistanceUtils.IGetDistance that uses Location.getDistance2D(Location) method. |
static class |
DistanceUtils.GetLocatedDistance3D<T extends ILocated>
Simple implementation of DistanceUtils.IGetDistance that uses Location.getDistance(Location) method. |
static interface |
DistanceUtils.IDistanceFilter<T>
Filter that allows to check whether "object" is accepted with respect to "distanceToTarget" for given "target". |
static interface |
DistanceUtils.IGetDistance<T>
Distance estimator between object of types T and some Location target. |
static class |
DistanceUtils.RangeDistanceFilter<T>
Filter that accepts all "objects" that are within range of min/max distance (inclusive). |
static class |
DistanceUtils.VisibleFilter<T extends IViewable>
Accepts only VISIBLE ( IViewable.isVisible() == TRUE) objects. |
| Constructor Summary | |
|---|---|
DistanceUtils()
|
|
| Method Summary | ||
|---|---|---|
static
|
getDistanceSorted(Collection<T> locations,
ILocated target)
Returns "locations" sorted according to the distance to "target". |
|
static
|
getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
Returns "locations" accepted by all "filters" sorted according to the distance to "target". |
|
static
|
getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Returns "locations" sorted according to the distance to "target". |
|
static
|
getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
Returns "locations" accepted by all "filters" sorted according to the distance to "target". |
|
static
|
getDistanceSorted(Collection<T> locations,
ILocated target,
double maxDistance)
Returns "locations" sorted according to the distance to "target". |
|
static
|
getDistanceSortedFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
Returns "locations" sorted according to the distance to "target". |
|
static
|
getDistanceSortedVisible(Collection<T> locations,
ILocated target)
Returns visible "locations" sorted according to the distance to "target". |
|
static
|
getNearest(Collection<T> locations,
ILocated target)
Returns the nearest object to 'target'. |
|
static
|
getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
Returns the nearest object to 'target' that is accepted by all 'filters'. |
|
static
|
getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Returns the nearest object to 'target'. |
|
static
|
getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
Returns the nearest object to 'target' that is accepted by all 'filters'. |
|
static
|
getNearest(Collection<T> locations,
ILocated target,
double maxDistance)
Returns the nearest object to 'target' that is not further than 'maxDistance'. |
|
static
|
getNearest2D(Collection<T> locations,
ILocated target)
Returns the nearest (in 2D) object to 'target'. |
|
static
|
getNearest2D(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
Returns the nearest (in 2D) object to 'target' that is accepted by all 'filters'. |
|
static
|
getNearest2D(Collection<T> locations,
ILocated target,
double maxDistance)
Returns the nearest (in 2D) object to 'target' that is not further than 'maxDistance'. |
|
static
|
getNearest2DFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter<T> filter)
Returns the nearest (in 2D) object to 'target' that is accepted by filter. |
|
static
|
getNearest2DVisible(Collection<T> locations,
ILocated target)
Returns the nearest object to 'target' that is visible (using DistanceUtils.VisibleFilter). |
|
static
|
getNearestFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
Returns the nearest object to 'target' that is accepted by filter. |
|
static
|
getNearestVisible(Collection<T> locations,
ILocated target)
Returns the nearest object to 'target' that is visible (using DistanceUtils.VisibleFilter). |
|
static
|
getSecondNearest(Collection<T> locations,
ILocated target)
Returns the second nearest object to 'target'. |
|
static
|
getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
Returns the second nearest object to 'target' that is accepted by all 'filters'. |
|
static
|
getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Returns the second nearest object to 'target'. |
|
static
|
getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
Returns the second nearest object to 'target'. |
|
static
|
getSecondNearest(Collection<T> locations,
ILocated target,
double maxDistance)
Returns the second nearest object to 'target' that is not further than 'maxDistance'. |
|
static
|
getSecondNearest2D(Collection<T> locations,
ILocated target)
Returns the second nearest (in 2D) object to 'target'. |
|
static
|
getSecondNearest2D(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
Returns the second nearest (in 2D) object to 'target' that is accepted by all 'filters'. |
|
static
|
getSecondNearest2D(Collection<T> locations,
ILocated target,
double maxDistance)
Returns the second nearest (in 2D) object to 'target' that is not further than 'maxDistance'. |
|
static
|
getSecondNearest2DFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter<T> filter)
Returns the second nearest (in 2D) object to 'target' that is accepted by filter. |
|
static
|
getSecondNearest2DVisible(Collection<T> locations,
ILocated target)
Returns the second nearest object to 'target' that is visible (using DistanceUtils.VisibleFilter). |
|
static
|
getSecondNearestFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
Returns the second nearest object to 'target' that is accepted by filter. |
|
static
|
getSecondNearestVisible(Collection<T> locations,
ILocated target)
Returns the second nearest object to 'target' that is visible (using DistanceUtils.VisibleFilter). |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final DistanceUtils.GetLocatedDistance3D<ILocated> getLocatedDistance3D
DistanceUtils.GetLocatedDistance3D.
public static final DistanceUtils.GetLocatedDistance2D<ILocated> getLocatedDistance2D
DistanceUtils.GetLocatedDistance2D.
public static final DistanceUtils.AcceptAllDistanceFilter acceptAllDistanceFilter
DistanceUtils.AcceptAllDistanceFilter.
public static final DistanceUtils.VisibleFilter<IViewable> visibleFilter
DistanceUtils.VisibleFilter.
| Constructor Detail |
|---|
public DistanceUtils()
| Method Detail |
|---|
public static <T> T getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Distance is obtained via provided IGetDistance#getDistance(Object, Location).
WARNING: O(n) complexity!
T - locations - target - getDistance - distance computer between 'locations' and 'target'.
public static <T> T getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
Distance is obtained via provided IGetDistance#getDistance(Object, Location).
WARNING: O(n) complexity!
T - locations - target - getDistance - distance computer between 'locations' and 'target'.filters - filters to be used (that can filter out unsuitable results)
public static <T extends ILocated> T getNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
WARNING: O(n) complexity!
T - locations - target - filters -
public static <T extends ILocated> T getNearest(Collection<T> locations,
ILocated target)
WARNING: O(n) complexity!
T - locations - target -
public static <T extends ILocated> T getNearest(Collection<T> locations,
ILocated target,
double maxDistance)
Using DistanceUtils.RangeDistanceFilter (minDistance = 0, maxDistance is provided).
WARNING: O(n) complexity!
T - locations - target - maxDistance -
public static <T extends ILocated> T getNearestFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
WARNING: O(n) complexity!
T - locations - target - filter - if null behave as if ALL locations are accepted
public static <T extends IViewable> T getNearestVisible(Collection<T> locations,
ILocated target)
DistanceUtils.VisibleFilter).
WARNING: O(n) complexity!
T - locations - must be objects implementing IViewable as well as ILocated (so Item or Player is usable)target -
public static <T> List<T> getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Distance is provided by IGetDistance#getDistance(Object, Location).
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target - getDistance -
public static <T> List<T> getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
Distance is provided by IGetDistance#getDistance(Object, Location).
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target - getDistance -
public static <T extends ILocated> List<T> getDistanceSorted(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target - filters -
public static <T extends ILocated> List<T> getDistanceSorted(Collection<T> locations,
ILocated target)
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target -
public static <T extends ILocated> List<T> getDistanceSorted(Collection<T> locations,
ILocated target,
double maxDistance)
Using DistanceUtils.RangeDistanceFilter (minDistance = 0, maxDistance is provided).
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target - maxDistance -
public static <T extends ILocated> List<T> getDistanceSortedFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - target - filter - if null behave as if ALL locations are accepted
public static <T extends IViewable> List<T> getDistanceSortedVisible(Collection<T> locations,
ILocated target)
WARNING: 2*O(n) + O(n*log n) complexity!
T - locations - must be objects implementing IViewable as well as ILocated (so Item or Player is usable)target -
public static <T> T getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance)
Distance is provided by DistanceUtils.IGetDistance.getDistance(Object, ILocated).
WARNING: O(n) complexity!
T - locations - target -
public static <T> T getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IGetDistance getDistance,
DistanceUtils.IDistanceFilter... filters)
WARNING: O(n) complexity!
T - locations - target -
public static <T extends ILocated> T getSecondNearest(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
WARNING: O(n) complexity!
T - locations - target - filters -
public static <T extends ILocated> T getSecondNearest(Collection<T> locations,
ILocated target)
WARNING: O(n) complexity!
T - locations - target -
public static <T extends ILocated> T getSecondNearest(Collection<T> locations,
ILocated target,
double maxDistance)
Using DistanceUtils.RangeDistanceFilter (minDistance = 0, maxDistance is provided).
WARNING: O(n) complexity!
T - locations - target - maxDistance -
public static <T extends ILocated> T getSecondNearestFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter filter)
WARNING: O(n) complexity!
T - locations - target - filter - if null behave as if ALL locations are accepted
public static <T extends IViewable> T getSecondNearestVisible(Collection<T> locations,
ILocated target)
DistanceUtils.VisibleFilter).
WARNING: O(n) complexity!
T - locations - must be objects implementing IViewable as well as ILocated (so Item or Player is usable)target -
public static <T extends ILocated> T getNearest2D(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
WARNING: O(n) complexity!
T - locations - target - filters -
public static <T extends ILocated> T getNearest2D(Collection<T> locations,
ILocated target)
WARNING: O(n) complexity!
T - locations - target -
public static <T extends ILocated> T getNearest2D(Collection<T> locations,
ILocated target,
double maxDistance)
Using DistanceUtils.RangeDistanceFilter (minDistance = 0, maxDistance is provided).
WARNING: O(n) complexity!
T - locations - target - maxDistance -
public static <T extends ILocated> T getNearest2DFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter<T> filter)
WARNING: O(n) complexity!
T - locations - target - filter - if null behave as if ALL locations are accepted
public static <T extends IViewable> T getNearest2DVisible(Collection<T> locations,
ILocated target)
DistanceUtils.VisibleFilter).
WARNING: O(n) complexity!
T - locations - must be objects implementing IViewable as well as ILocated (so Item or Player is usable)target -
public static <T extends ILocated> T getSecondNearest2D(Collection<T> locations,
ILocated target,
DistanceUtils.IDistanceFilter... filters)
WARNING: O(n) complexity!
T - locations - target - filters -
public static <T extends ILocated> T getSecondNearest2D(Collection<T> locations,
ILocated target)
WARNING: O(n) complexity!
T - locations - target -
public static <T extends ILocated> T getSecondNearest2D(Collection<T> locations,
ILocated target,
double maxDistance)
Using DistanceUtils.RangeDistanceFilter (minDistance = 0, maxDistance is provided).
WARNING: O(n) complexity!
T - locations - target - maxDistance -
public static <T extends ILocated> T getSecondNearest2DFiltered(Collection<T> locations,
ILocated target,
cz.cuni.amis.utils.IFilter<T> filter)
WARNING: O(n) complexity!
T - locations - target - filter - if null behave as if ALL locations are accepted
public static <T extends IViewable> T getSecondNearest2DVisible(Collection<T> locations,
ILocated target)
DistanceUtils.VisibleFilter).
WARNING: O(n) complexity!
T - locations - must be objects implementing IViewable as well as ILocated (so Item or Player is usable)target -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||