// 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;
}