I’ve just found a document on my hard drive which I wrote as part of a Univeristy project in my games programming degree. It nicely describes an algorithm for performing what are often called CSG (constructive solid geometry) operations. BSP (binary spatial partitioning) is another term.
This is an algorithm for taking intersecting 3D or 2D objects and removing one from the other to create a hole, or combining them together. This is frequently seen as a tool in 3D modelling programs or level editors.
Download Binary Solid Operations PDF