예제 #1
0
        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)));
        }
예제 #2
0
        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)));
        }