/// <summary> 
 /// Get the nearest neighbours to a point in the kd tree using a square euclidean distance function. 
 /// </summary> 
 /// <param name="tSearchPoint">The point of interest.</param> 
 /// <param name="iMaxReturned">The maximum number of points which can be returned by the iterator.</param> 
 /// <param name="fDistance">A threshold distance to apply.  Optional.  Negative values mean that it is not applied.</param> 
 /// <returns>A new nearest neighbour iterator with the given parameters.</returns> 
 public NearestNeighbour NearestNeighbors(Vector3d tSearchPoint, int iMaxReturned, double fDistance = -1) 
 { 
     DistanceFunctions distanceFunction = new SquareEuclideanDistanceFunction(); 
     return NearestNeighbors(tSearchPoint, distanceFunction, iMaxReturned, fDistance); 
 } 
        /// <summary>
        /// Get the nearest neighbours to a point in the kd tree using a square euclidean distance function.
        /// </summary>
        /// <param name="tSearchPoint">The point of interest.</param>
        /// <param name="iMaxReturned">The maximum number of points which can be returned by the iterator.</param>
        /// <param name="fDistance">A threshold distance to apply.  Optional.  Negative values mean that it is not applied.</param>
        /// <returns>A new nearest neighbour iterator with the given parameters.</returns>
        public NearestNeighbour NearestNeighbors(Vector3d tSearchPoint, int iMaxReturned, double fDistance = -1)
        {
            DistanceFunctions distanceFunction = new SquareEuclideanDistanceFunction();

            return(NearestNeighbors(tSearchPoint, distanceFunction, iMaxReturned, fDistance));
        }