ExpandToContain() public method

public ExpandToContain ( Rect r, Rect r2 ) : Rect
r UnityEngine.Rect
r2 UnityEngine.Rect
return UnityEngine.Rect
Ejemplo n.º 1
0
        public void Insert(MeshNode node)
        {
            int box = this.GetBox(node);

            if (box == 0)
            {
                return;
            }
            BBTree.BBTreeBox bBTreeBox = this.arr[box];
            int num = 0;

            BBTree.BBTreeBox bBTreeBox2;
            while (true)
            {
                bBTreeBox2      = this.arr[num];
                bBTreeBox2.rect = BBTree.ExpandToContain(bBTreeBox2.rect, bBTreeBox.rect);
                if (bBTreeBox2.node != null)
                {
                    break;
                }
                this.arr[num] = bBTreeBox2;
                int num2 = BBTree.ExpansionRequired(this.arr[bBTreeBox2.left].rect, bBTreeBox.rect);
                int num3 = BBTree.ExpansionRequired(this.arr[bBTreeBox2.right].rect, bBTreeBox.rect);
                if (num2 < num3)
                {
                    num = bBTreeBox2.left;
                }
                else if (num3 < num2)
                {
                    num = bBTreeBox2.right;
                }
                else
                {
                    num = ((BBTree.RectArea(this.arr[bBTreeBox2.left].rect) >= BBTree.RectArea(this.arr[bBTreeBox2.right].rect)) ? bBTreeBox2.right : bBTreeBox2.left);
                }
            }
            bBTreeBox2.left = box;
            int box2 = this.GetBox(bBTreeBox2.node);

            bBTreeBox2.right = box2;
            bBTreeBox2.node  = null;
            this.arr[num]    = bBTreeBox2;
        }