public void ContainsCases(int x, int y, bool shouldPass) { var point = new Point2Int(x, y); var box = new Bounding2DBox(new Point2Int(-1, -1), new Point2Int(1, 1)); Assert.AreEqual(shouldPass, box.ContainsPoint(point)); }
public void SubDivide(Point2Int[] points, Point2Int newPoint, Bounding2DBox boundingBox, out QuadTree northWest, out QuadTree northEast, out QuadTree southWest, out QuadTree southEast) { int maxItems = points.Length; var center = boundingBox.CenterPoint(); var bottomLeftOfNorthWest = new Point2Int(boundingBox.LowerLeft.X, center.Y); var topRightOfNorthWest = new Point2Int(center.X, boundingBox.UpperRight.Y); var bottomLeftOfNorthEast = center; var topRightOfNorthEast = boundingBox.UpperRight; var bottomLeftOfSouthWest = boundingBox.LowerLeft; var topRightOfSouthWest = center; var bottomLeftOfSouthEast = new Point2Int(center.X, boundingBox.LowerLeft.Y); var topRightOfSouthEast = new Point2Int(boundingBox.UpperRight.X, center.Y); northWest = new QuadTree(new Bounding2DBox(bottomLeftOfNorthWest, topRightOfNorthWest), maxItems, this); northEast = new QuadTree(new Bounding2DBox(bottomLeftOfNorthEast, topRightOfNorthEast), maxItems, this); southWest = new QuadTree(new Bounding2DBox(bottomLeftOfSouthWest, topRightOfSouthWest), maxItems, this); southEast = new QuadTree(new Bounding2DBox(bottomLeftOfSouthEast, topRightOfSouthEast), maxItems, this); foreach (var point2Int in points) { AddPoint(northWest, northEast, southWest, southEast, point2Int, center); } AddPoint(northWest, northEast, southWest, southEast, newPoint, center); }
public void AssertValuesHold(int lx, int ly, int ux, int uy) { var bottomLeft = new Point2Int(lx, ly); var topRight = new Point2Int(ux, uy); var ut = new Bounding2DBox(bottomLeft, topRight); Assert.AreEqual(bottomLeft, ut.LowerLeft); Assert.AreEqual(topRight, ut.UpperRight); }
public void BoundaryTests(int minx, int miny, int maxx, int maxy, bool shouldPass) { var bottomLeft = new Point2Int(minx, miny); var topRight = new Point2Int(maxx, maxy); var areaUnderTest = new Bounding2DBox(bottomLeft, topRight); var box = new Bounding2DBox(new Point2Int(-1, -1), new Point2Int(1, 1)); Assert.AreEqual(shouldPass, box.DoesBoundaryBoxIntersect(areaUnderTest)); }
public void PointInAreaAssert( int quadMinx, int quadMiny, int quadMaxx, int quadMaxy, int boundaryMinx, int boundaryMiny, int boundaryMaxx, int boundaryMaxy, int pointx, int pointy, bool expected) { var quadBoundingBox = new Bounding2DBox(new Point2Int(quadMinx, quadMiny), new Point2Int(quadMaxx, quadMaxy)); var area = new Bounding2DBox(new Point2Int(boundaryMinx, boundaryMiny), new Point2Int(boundaryMaxx, boundaryMaxy)); var point = new Point2Int(pointx, pointy); var ut = new QuadTree(quadBoundingBox, 10, new SimpleQuadTreeDivisionStrategy()); ut.Add(point); var points = new List <Point2Int>(); ut.GetPointsInArea(area, ref points); Assert.AreEqual(expected, points.Contains(point)); }
public void AssertDefaultValuesAreEmpty() { var ut = new Bounding2DBox(); Assert.AreEqual(Bounding2DBox.Empty, ut); }