public CSG Intersect(CSG csg) { Node a = new Node(this.Clone().polygons); Node b = new Node(csg.Clone().polygons); a.Invert(); b.ClipTo(a); b.Invert(); a.ClipTo(b); b.ClipTo(a); a.Build(b.AllPolygons.ToList()); a.Invert(); return CSG.FromPolygons(a.AllPolygons); }
public CSG Intersect(CSG csg) { Node a = new Node(this.Clone().polygons); Node b = new Node(csg.Clone().polygons); a.Invert(); b.ClipTo(a); b.Invert(); a.ClipTo(b); b.ClipTo(a); a.Build(b.AllPolygons.ToList()); a.Invert(); return(CSG.FromPolygons(a.AllPolygons)); }