public static Slice ( |
||
a | ||
b | ||
side1 | ||
side2 | ||
return | void |
public static void Slice(BSPTree a, BSPTree b, out BSPTree side1, out BSPTree side2)
{
side1 = a.Clone();
BSPTree bClone = b.Clone();
List<Triangle> side1Discarded = new List<Triangle>();
bClone.Invert ();
bClone.ClipByTree (a, false);
side1.ClipByTree (b, true, side1Discarded);
side1.AddTriangles(bClone.GetAllTriangles());
bClone.Invert();
side2 = new BSPTree();
side2.AddTriangles(bClone.GetAllTriangles());
side2.AddTriangles(side1Discarded);
}
Operations::Slice ( |