RectArea() static private method

static private RectArea ( Rect r ) : float
r UnityEngine.Rect
return float
Ejemplo n.º 1
0
        // Token: 0x06002680 RID: 9856 RVA: 0x001AB0BC File Offset: 0x001A92BC
        public void Insert(RecastMeshObj mesh)
        {
            RecastBBTreeBox recastBBTreeBox = new RecastBBTreeBox(mesh);

            if (this.root == null)
            {
                this.root = recastBBTreeBox;
                return;
            }
            RecastBBTreeBox recastBBTreeBox2 = this.root;

            for (;;)
            {
                recastBBTreeBox2.rect = RecastBBTree.ExpandToContain(recastBBTreeBox2.rect, recastBBTreeBox.rect);
                if (recastBBTreeBox2.mesh != null)
                {
                    break;
                }
                float num  = RecastBBTree.ExpansionRequired(recastBBTreeBox2.c1.rect, recastBBTreeBox.rect);
                float num2 = RecastBBTree.ExpansionRequired(recastBBTreeBox2.c2.rect, recastBBTreeBox.rect);
                if (num < num2)
                {
                    recastBBTreeBox2 = recastBBTreeBox2.c1;
                }
                else if (num2 < num)
                {
                    recastBBTreeBox2 = recastBBTreeBox2.c2;
                }
                else
                {
                    recastBBTreeBox2 = ((RecastBBTree.RectArea(recastBBTreeBox2.c1.rect) < RecastBBTree.RectArea(recastBBTreeBox2.c2.rect)) ? recastBBTreeBox2.c1 : recastBBTreeBox2.c2);
                }
            }
            recastBBTreeBox2.c1 = recastBBTreeBox;
            RecastBBTreeBox c = new RecastBBTreeBox(recastBBTreeBox2.mesh);

            recastBBTreeBox2.c2   = c;
            recastBBTreeBox2.mesh = null;
        }