I was wondering how people would approach the problem of merging two 3D objects?
The user can place shapes around the scene (cubes, cuboids, spheres, pyramids), and when he moves an object to intersect with another, I want the object to merge with the other object instead of going through it.
Here is a diagram to better explain:

I am thinking that maybe generate a point cloud for both models, that then removes points from the cuboid that intersect with the sphere, before finally recreating the model from the points?
All that point data would surely be a huge perf problem though? Not too sure how to recreate a model from point data either.
I suggest to take a look at the awesome CSG site by Evan Wallace.
That’s live code, very clean and documented JavaScript (see docs), with a liberal license .
Porting to C# or C++ should be an interesting task.