// Token: 0x0600267F RID: 9855 RVA: 0x001AB000 File Offset: 0x001A9200 private RecastBBTreeBox RemoveBox(RecastBBTreeBox c, RecastMeshObj mesh, Rect bounds, ref bool found) { if (!RecastBBTree.RectIntersectsRect(c.rect, bounds)) { return(c); } if (c.mesh == mesh) { found = true; return(null); } if (c.mesh == null && !found) { c.c1 = this.RemoveBox(c.c1, mesh, bounds, ref found); if (c.c1 == null) { return(c.c2); } if (!found) { c.c2 = this.RemoveBox(c.c2, mesh, bounds, ref found); if (c.c2 == null) { return(c.c1); } } if (found) { c.rect = RecastBBTree.ExpandToContain(c.c1.rect, c.c2.rect); } } return(c); }
// 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; }