public void UpdateOctreeNode( OctreeNode node )
{
AxisAlignedBox box = node.WorldAABB;
if ( box.IsNull )
{
return;
}
if ( node.Octant == null )
{
//if outside the octree, force into the root node.
if ( !node.IsInBox( octree.Box ) )
{
octree.AddNode( node );
}
else
{
AddOctreeNode( node, octree );
}
return;
}
if ( !node.IsInBox( node.Octant.Box ) )
{
RemoveOctreeNode( node );
//if outside the octree, force into the root node.
if ( !node.IsInBox( octree.Box ) )
{
octree.AddNode( node );
}
else
{
AddOctreeNode( node, octree );
}
}
}