/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }