using System; namespace KdTree { // Token: 0x0200000C RID: 12 public class NearestNeighbourList : INearestNeighbourList { // Token: 0x0600004C RID: 76 RVA: 0x00002CB7 File Offset: 0x00000EB7 public NearestNeighbourList(int maxCapacity, ITypeMath distanceMath) { this.maxCapacity = maxCapacity; this.distanceMath = distanceMath; this.queue = new PriorityQueue(maxCapacity, distanceMath); } // Token: 0x17000010 RID: 16 // (get) Token: 0x0600004D RID: 77 RVA: 0x00002CDA File Offset: 0x00000EDA public int MaxCapacity { get { return this.maxCapacity; } } // Token: 0x17000011 RID: 17 // (get) Token: 0x0600004E RID: 78 RVA: 0x00002CE2 File Offset: 0x00000EE2 public int Count { get { return this.queue.Count; } } // Token: 0x0600004F RID: 79 RVA: 0x00002CF0 File Offset: 0x00000EF0 public bool Add(TItem item, TDistance distance) { if (this.queue.Count < this.maxCapacity) { this.queue.Enqueue(item, distance); return true; } if (this.distanceMath.Compare(distance, this.queue.GetHighestPriority()) < 0) { this.queue.Dequeue(); this.queue.Enqueue(item, distance); return true; } return false; } // Token: 0x06000050 RID: 80 RVA: 0x00002D55 File Offset: 0x00000F55 public TItem GetFurtherest() { if (this.Count == 0) { throw new Exception("List is empty"); } return this.queue.GetHighest(); } // Token: 0x06000051 RID: 81 RVA: 0x00002D75 File Offset: 0x00000F75 public TDistance GetFurtherestDistance() { if (this.Count == 0) { throw new Exception("List is empty"); } return this.queue.GetHighestPriority(); } // Token: 0x06000052 RID: 82 RVA: 0x00002D95 File Offset: 0x00000F95 public TItem RemoveFurtherest() { return this.queue.Dequeue(); } // Token: 0x17000012 RID: 18 // (get) Token: 0x06000053 RID: 83 RVA: 0x00002DA2 File Offset: 0x00000FA2 public bool IsCapacityReached { get { return this.Count == this.MaxCapacity; } } // Token: 0x04000014 RID: 20 private PriorityQueue queue; // Token: 0x04000015 RID: 21 private ITypeMath distanceMath; // Token: 0x04000016 RID: 22 private int maxCapacity; } }