CHAPTER 2 ■ SETTING UP DIFFERENT CAMERA MODES IN YOUR 3D WORLD
136
As discussed in the introduction, a parent triangle is not allowed to merge when one of
its child triangles is currently split or when one of the child triangles of its bottom neighbor
is split.
The next method will check whether a triangle should actually merge:
public bool CheckMerge(ref List<Triangle> mergeList, ref Matrix wvp,
➥
ref BoundingFrustum bf)
{
bool shouldMerge = false;
if (!addedToMergeList)
{
if (CanMerge())
{
if (!ShouldSplit(ref wvp, ref bf))
{
shouldMerge = true;
if (bNeigh != null)
if (bNeigh.ShouldSplit(ref wvp, ref bf))
shouldMerge = false;
}
}
}
}
Since it is actually the child triangles that nominate their parents to merge, this method
can be called twice ...