package arida.ufc.br.moap.optics.functions; import arida.ufc.br.moap.core.beans.Trajectory; import arida.ufc.br.moap.function.api.IDistanceFunction; /** * * @author igobrilhante * * @param <S> S represents the spatial extent of the trajectories * <p> * This distance function computes the distance between the destinations of two given trajectories * </p> */ public class DestinationDistanceFunction<S,T> implements IDistanceFunction<Trajectory<S, T>> { /** * Distance Function to compute the distance between two spatial extent */ private final IDistanceFunction<S> spatialFunction; public DestinationDistanceFunction(IDistanceFunction<S> spatialFunction) { this.spatialFunction = spatialFunction; } @Override public String getName() { // TODO Auto-generated method stub return "Destination Distance Function"; } @Override public Double evaluate(Trajectory<S, T> traj1, Trajectory<S, T> traj2) { S traj1PointN = traj1.getPoint(traj1.getPointCount()-1); S traj2PointN = traj2.getPoint(traj2.getPointCount()-1); double distance = spatialFunction.evaluate(traj1PointN, traj2PointN); return distance; } }