Exemplo n.º 1
0
        /// <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;
        }
Exemplo n.º 2
0
        /// <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;
            }
        }