Example #1
0
        /// <summary>
        ///   Determines whether this instance contains the specified item.
        /// </summary>
        ///
        /// <param name="item">The object to locate in the collection.
        ///   The value can be null for reference types.</param>
        ///
        /// <returns>
        ///   <c>true</c> if the item is found in the collection; otherwise, <c>false</c>.
        /// </returns>
        ///
        public bool Contains(KDTreeNodeDistance <T> item)
        {
            List <KDTreeNode <T> > position;

            if (positions.TryGetValue(item.Distance, out position))
            {
                return(position.Contains(item.Node));
            }

            return(false);
        }
Example #2
0
        /// <summary>
        ///   Determines whether this instance contains the specified item.
        /// </summary>
        ///
        /// <param name="item">The object to locate in the collection.
        ///   The value can be null for reference types.</param>
        ///
        /// <returns>
        ///   <c>true</c> if the item is found in the collection; otherwise, <c>false</c>.
        /// </returns>
        ///
        public bool Contains(KDTreeNodeDistance <T> item)
        {
            int i = Array.IndexOf(positions, item.Node);

            if (i == -1)
            {
                return(false);
            }

            return(distances[i] == item.Distance);
        }
Example #3
0
        /// <summary>
        ///   Removes the first occurrence of a specific object from the collection.
        /// </summary>
        ///
        /// <param name="item">The object to remove from the collection.
        /// The value can be null for reference types.</param>
        ///
        /// <returns>
        ///   <c>true</c> if item is successfully removed; otherwise, <c>false</c>.
        /// </returns>
        ///
        public bool Remove(KDTreeNodeDistance <T> item)
        {
            List <KDTreeNode <T> > position;

            if (!positions.TryGetValue(item.Distance, out position))
            {
                return(false);
            }

            if (!position.Remove(item.Node))
            {
                return(false);
            }

            range.Max = distances.Max;
            range.Min = distances.Min;
            count--;

            return(true);
        }
Example #4
0
 /// <summary>
 ///   Adds the specified item to this collection.
 /// </summary>
 ///
 /// <param name="item">The item.</param>
 ///
 public void Add(KDTreeNodeDistance <T> item)
 {
     Add(item.Node, item.Distance);
 }
Example #5
0
 /// <summary>
 ///   Not supported.
 /// </summary>
 ///
 public bool Remove(KDTreeNodeDistance <T> item)
 {
     throw new NotSupportedException();
 }
 /// <summary>
 ///   Compares this instance to another node, returning an integer
 ///   indicating whether this instance has a distance that is less
 ///   than, equal to, or greater than the other node's distance.
 /// </summary>
 ///
 public int CompareTo(KDTreeNodeDistance <T> other)
 {
     return(distance.CompareTo(other.distance));
 }
 /// <summary>
 ///   Determines whether the specified <see cref="KDTreeNodeDistance{T}"/>
 ///   is equal to this instance.
 /// </summary>
 ///
 /// <param name="other">The <see cref="KDTreeNodeDistance{T}"/> to compare
 ///   with this instance.</param>
 ///
 /// <returns>
 ///   <c>true</c> if the specified <see cref="KDTreeNodeDistance{T}"/> is
 ///   equal to this instance; otherwise, <c>false</c>.
 /// </returns>
 ///
 public bool Equals(KDTreeNodeDistance <T> other)
 {
     return(distance == other.distance && node == other.node);
 }