using System; namespace KdTree { // Token: 0x02000003 RID: 3 public struct HyperRect { // Token: 0x17000001 RID: 1 // (get) Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250 // (set) Token: 0x06000002 RID: 2 RVA: 0x00002058 File Offset: 0x00000258 public T[] MinPoint { get { return this.minPoint; } set { this.minPoint = new T[value.Length]; value.CopyTo(this.minPoint, 0); } } // Token: 0x17000002 RID: 2 // (get) Token: 0x06000003 RID: 3 RVA: 0x00002075 File Offset: 0x00000275 // (set) Token: 0x06000004 RID: 4 RVA: 0x0000207D File Offset: 0x0000027D public T[] MaxPoint { get { return this.maxPoint; } set { this.maxPoint = new T[value.Length]; value.CopyTo(this.maxPoint, 0); } } // Token: 0x06000005 RID: 5 RVA: 0x0000209C File Offset: 0x0000029C public static HyperRect Infinite(int dimensions, ITypeMath math) { HyperRect hyperRect = default(HyperRect); hyperRect.MinPoint = new T[dimensions]; hyperRect.MaxPoint = new T[dimensions]; for (int i = 0; i < dimensions; i++) { hyperRect.MinPoint[i] = math.NegativeInfinity; hyperRect.MaxPoint[i] = math.PositiveInfinity; } return hyperRect; } // Token: 0x06000006 RID: 6 RVA: 0x00002100 File Offset: 0x00000300 public T[] GetClosestPoint(T[] toPoint, ITypeMath math) { T[] array = new T[toPoint.Length]; for (int i = 0; i < toPoint.Length; i++) { if (math.Compare(this.minPoint[i], toPoint[i]) > 0) { array[i] = this.minPoint[i]; } else if (math.Compare(this.maxPoint[i], toPoint[i]) < 0) { array[i] = this.maxPoint[i]; } else { array[i] = toPoint[i]; } } return array; } // Token: 0x06000007 RID: 7 RVA: 0x00002198 File Offset: 0x00000398 public HyperRect Clone() { return new HyperRect { MinPoint = this.MinPoint, MaxPoint = this.MaxPoint }; } // Token: 0x04000003 RID: 3 private T[] minPoint; // Token: 0x04000004 RID: 4 private T[] maxPoint; } }