An algorithm and data structure for 3D object synthesis using surface patch intersections | Synapse