/// <summary> /// Retrieves the nearest points to a given point within a given radius. /// </summary> /// /// <param name="position">The queried point.</param> /// <param name="radius">The search radius.</param> /// /// <returns>A list of neighbor points, ordered by distance.</returns> /// public KDTreeNodeList<T> Nearest(double[] position, double radius) { var list = new KDTreeNodeList<T>(); if (root != null) nearest(root, position, radius, list); return list; }
/// <summary> /// Retrieves the nearest points to a given point within a given radius. /// </summary> /// /// <param name="position">The queried point.</param> /// <param name="radius">The search radius.</param> /// <param name="maximum">The maximum number of neighbors to retrieve.</param> /// /// <returns>A list of neighbor points, ordered by distance.</returns> /// public ICollection<KDTreeNodeDistance<T>> Nearest(double[] position, double radius, int maximum) { if (maximum == 0) { var list = new KDTreeNodeList<T>(); if (root != null) nearest(root, position, radius, list); return list; } else { var list = new KDTreeNodeCollection<T>(maximum); if (root != null) nearest(root, position, radius, list); return list; } }