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); }
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); }
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); }