public void Split () { //Debug.Log ("Spliting Quad: " + ID); Children = new QuadTreeNode[4]; float HalfLength = BoundingBox.width / 2; Rect c0Rect = new Rect (BoundingBox.xMin, BoundingBox.yMin, HalfLength, HalfLength); Rect c1Rect = new Rect (BoundingBox.xMin + HalfLength, BoundingBox.yMin, HalfLength, HalfLength); Rect c2Rect = new Rect (BoundingBox.xMin, BoundingBox.yMin + HalfLength, HalfLength, HalfLength); Rect c3Rect = new Rect (BoundingBox.xMin + HalfLength, BoundingBox.yMin + HalfLength, HalfLength, HalfLength); Children [0] = new QuadTreeNode (c0Rect, ID, MaxDepth, Depth + 1); Children [1] = new QuadTreeNode (c1Rect, ID, MaxDepth, Depth + 1); Children [2] = new QuadTreeNode (c2Rect, ID, MaxDepth, Depth + 1); Children [3] = new QuadTreeNode (c3Rect, ID, MaxDepth, Depth + 1); }
public QuadTree (Rect bBox, int maxDepth) { Root = new QuadTreeNode (bBox, Vector2.zero, maxDepth, 0); }