/** * Checks to see if the current node's point is the closet point found so far */ @Override protected void checkBestDistance(KdTree.Node node, P target) { double distanceSq = distance.distance((P)node.point,target); if( distanceSq <= bestDistanceSq ) { if( bestNode == null || distanceSq < bestDistanceSq ) { bestDistanceSq = distanceSq; bestNode = node; } } }
/** * Checks to see if the current node's point is the closet point found so far */ @Override protected void checkBestDistance(KdTree.Node node, P target) { double distanceSq = distance.distance((P)node.point,target); if( distanceSq <= bestDistanceSq ) { if( bestNode == null || distanceSq < bestDistanceSq ) { bestDistanceSq = distanceSq; bestNode = node; } } }
/** * Finds the index of the point which has the smallest Euclidean distance to 'p' and is {@code <} maxDistance * away. * * @param p A point. * @param maxDistance The maximum distance (Euclidean squared) the neighbor can be. * @return Index of the closest point. */ public int findClosest( P p , double maxDistance ) { int best = -1; bestDistance = maxDistance; for( int i = 0; i < points.size(); i++ ) { P c = points.get(i); double distanceC = distance.distance(p,c); if( distanceC <= bestDistance ) { bestDistance = distanceC; best = i; } } return best; }
/** * Finds the index of the point which has the smallest Euclidean distance to 'p' and is {@code <} maxDistance * away. * * @param p A point. * @param maxDistance The maximum distance (Euclidean squared) the neighbor can be. * @return Index of the closest point. */ public int findClosest( P p , double maxDistance ) { int best = -1; bestDistance = maxDistance; for( int i = 0; i < points.size(); i++ ) { P c = points.get(i); double distanceC = distance.distance(p,c); if( distanceC <= bestDistance ) { bestDistance = distanceC; best = i; } } return best; }
@Override protected void checkBestDistance(KdTree.Node node, double[] target) { double distanceSq = distance.distance((double[])node.point,target); if( distanceSq <= bestDistanceSq ) { bestDistanceSq = distanceSq; bestNode = node; } }
P c = points.get(i); double distanceC = distance.distance(p,c);
P c = points.get(i); double distanceC = distance.distance(p,c);
double distSq = distance.distance((P)node.point,target);
double distSq = distance.distance((P)node.point,target);
double distanceSq = distance.distance((P)node.point,target);
double distanceSq = distance.distance((P)node.point,target);