/**
* Returns geometry corresponding to volume that is occupied by @a,
* but not by @b.
*/
public static BSPTree Subtract(BSPTree a, BSPTree b)
{
BSPTree aClone = a.Clone();
BSPTree bClone = b.Clone();
float startTime = Time.realtimeSinceStartup;
bClone.Invert();
bClone.ClipByTree(a, false);
aClone.ClipByTree(b);
aClone.AddTriangles(bClone.GetAllTriangles());
return(aClone);
}