Cutting away parts of a model.

This is a bit of a strange request. I am currently working on a Idea that involves taking a solid model (say an earth wall). And then taking a geosphere ball and using it as an explosion, and where ever the geopshere intersects the wall, it is cut out. Leaving an exact hole where the explosion was. I currently have a pretty good working model, but would like to know if anyone else has seen a library, or set of functions that currently do what I am designing?

Oh, also, i am NOT looking for voxel grid stuff, voxels wont work for my current idea, I need to be compleatly unrestricted in the models I use, exept for the fact that they will all be clossed solid objects.

Oh one more thing, if the function or library, could also return the values of the new polys created after the cut away, that would be a GREAT help. Thanx.

To give you more of a clue of what I realy want (I am not good at explanations). Have you seen AutoCad or solid works 3D, they have a boolean subtract function. Basicaly taking one existing model, and removing it from anothers volume. This is what I REALY want to do. But I need an algorithm to do it. Anyone seen one?
[This message has been edited by dabeav (edited 12-24-2003).]

[This message has been edited by dabeav (edited 12-24-2003).]

[This message has been edited by dabeav (edited 12-24-2003).]

Well, i think im now on the right track. I have managed to find a tutorial (well kind of tutorial) on BSP tree boolean subtraction to form Constructive Solid Geometry. If any one else has any further info, on using BSP trees for objects, to do boolean subtraction, it would be GREATLY appreciated.