Exemple #1
0
        public void DataIsQueriableAsDesired()
        {
            var qtree = new Quadtree<BoundableDummy>();
            var dummy = new BoundableDummy(
                new AxisAlignedBoundingBox2D(10.0f, 10.0f, 20.0f)
                );

            qtree.Add(dummy);
            var searchBox = new AxisAlignedBoundingBox2D(0, 0, 50.0f);
            var hitCount = 0;
            Action<BoundableDummy> hitAction = (BoundableDummy) => hitCount++;

            qtree.Query(searchBox, hitAction);
            Assert.AreEqual(1, hitCount);
        }
Exemple #2
0
        public void QueryQuadtreeWithTwoDummiesAndObtainNone()
        {
            var qtree = new Quadtree<BoundableDummy>();
            var dummy1 = new BoundableDummy(
                new AxisAlignedBoundingBox2D(10.0f, 10.0f, 20.0f)
                );
            var dummy2 = new BoundableDummy(
                new AxisAlignedBoundingBox2D(100.0f, 100.0f, 20.0f)
                );

            qtree.Add(dummy1);
            qtree.Add(dummy2);
            var searchBox = new AxisAlignedBoundingBox2D(50.0f, 50.0f, 5.0f);
            var hitDummies = new List<BoundableDummy>();
            Action<BoundableDummy> hitAction = (bd) => hitDummies.Add(bd);

            qtree.Query(searchBox, hitAction);
            Assert.AreEqual(0, hitDummies.Count);
        }
Exemple #3
0
        public void QueryQuadtreeWithThreeDummiesAndObtainAll()
        {
            var qtree = new Quadtree<BoundableDummy>();
            var dummy1 = new BoundableDummy(
                new AxisAlignedBoundingBox2D(10.0f, 10.0f, 20.0f)
                );
            var dummy2 = new BoundableDummy(
                new AxisAlignedBoundingBox2D(100.0f, 100.0f, 20.0f)
                );
            var dummy3 = new BoundableDummy(
                new AxisAlignedBoundingBox2D(10.0f, 60.0f, 20.0f)
                );

            qtree.Add(dummy1);
            qtree.Add(dummy2);
            qtree.Add(dummy3);

            var hitDummies = new List<BoundableDummy>();
            Action<BoundableDummy> hitAction = (bd) => hitDummies.Add(bd);

            qtree.Query(hitAction);
            Assert.AreEqual(3, hitDummies.Count);
        }