Insiemistic Operations on shapes

I should mention that CSG is very hard to get right. There are libraries that do it, though.