New method was recently added to Part.Shape. The method is called "generalFuse", it does what in OCC is called "general fuse operator", or "general fuse algorithm" (GFA). It is the generalized version of all Boolean operations, and Fuse, Cut and Common are just simple post-processing of the output of GFA.
generalFuse takes a list of shapes as input, and outputs a tuple of two: (result, map). Result is a compound of all shapes that result from intersecting and splitting the input shapes. Map is the list of lists to identify, what pieces stored in result belong to which input shape.
Example: feeding two spheres outputs a compound of three solids. Note that the faces and edges that the pieces share are actually shared, so valid compsolids can be made from the output of generalFuse.
Some potential applications of the algorithm are:
* making CompSolids
* custom BOP-like operations, like Connect (I plan re-implementing Connect to take the advantage of GFA, which will probably make it as fast as a single BOP - now it is about 5 times slower than a single BOP).
* maybe a new, more efficient solution for generating mosaic set of faces from intersecting edges
* switch on your imagination and invent some other use
I didn't test, how does generalFuse react to feeding in various non-solid geometry, but from OCC manual it seems that any combinations of shape types are supported.
Note. generalFuse requires OCC 6.9.0 or later.
Note2. I haven't found a nice way of joining pieces obtained from generalFuse. Curently, for joining solids, I have extended Part.Solid() constructor to accept CompSolid as input (it will join the compsolid into one solid). So, to emulate fuse method, run generalFuse, then convert result to CompSolid, and then to Solid. I will expose a better way as a separate method if I find one.