public void Infinite() { GlobalSettings.ValidationLevel = 0xff; var partition = new DynamicAabbTree <int> { EnableSelfOverlaps = true, GetAabbForItem = GetAabbForItem }; partition.Add(1); partition.Add(0); partition.Add(2); partition.Add(3); Assert.AreEqual(new Aabb(new Vector3F(float.NegativeInfinity), new Vector3F(float.PositiveInfinity)), partition.Aabb); var overlaps = partition.GetOverlaps().ToArray(); Assert.AreEqual(4, overlaps.Length); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 1))); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 2))); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 3))); Assert.IsTrue(overlaps.Contains(new Pair <int>(1, 2))); partition.Add(5); partition.Add(6); partition.Add(7); partition.Update(true); Assert.AreEqual(new Aabb(new Vector3F(float.NegativeInfinity), new Vector3F(float.PositiveInfinity)), partition.Aabb); overlaps = partition.GetOverlaps().ToArray(); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 1))); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 2))); Assert.IsTrue(overlaps.Contains(new Pair <int>(0, 3))); Assert.IsTrue(overlaps.Contains(new Pair <int>(1, 2))); Assert.IsTrue(overlaps.Contains(new Pair <int>(1, 5))); }
public void Infinite() { GlobalSettings.ValidationLevel = 0xff; var partition = new DynamicAabbTree<int> { EnableSelfOverlaps = true, GetAabbForItem = GetAabbForItem }; partition.Add(1); partition.Add(0); partition.Add(2); partition.Add(3); Assert.AreEqual(new Aabb(new Vector3F(float.NegativeInfinity), new Vector3F(float.PositiveInfinity)), partition.Aabb); var overlaps = partition.GetOverlaps().ToArray(); Assert.AreEqual(4, overlaps.Length); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 1))); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 2))); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 3))); Assert.IsTrue(overlaps.Contains(new Pair<int>(1, 2))); partition.Add(5); partition.Add(6); partition.Add(7); partition.Update(true); Assert.AreEqual(new Aabb(new Vector3F(float.NegativeInfinity), new Vector3F(float.PositiveInfinity)), partition.Aabb); overlaps = partition.GetOverlaps().ToArray(); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 1))); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 2))); Assert.IsTrue(overlaps.Contains(new Pair<int>(0, 3))); Assert.IsTrue(overlaps.Contains(new Pair<int>(1, 2))); Assert.IsTrue(overlaps.Contains(new Pair<int>(1, 5))); }