A 3D box intercepts a set of bodies and faces(a face is a finite part of a curved surfaces limited by lines) all analyticaly defined, how to get a defenition of the fragments of interception of the box and independent void domains of the space?
Consider a set of points in space, a set of line segments (parts of analytical curves enclosed by two of the points), a set of faces (parts of analytical surfaces enclosed by the line segments) and a set of bodies enclosed by the given faces, all defined in a orthogonal space with a referential xyz. Aditionaly, consider a prismatic box oriented acording to the axis of the referential. The following elements are also known:
1-All point coordinates, including the ones obtained by interception of the geometry of the box and the corners of the box itself.
2-All line segments and points resulting of the interception of the geometry with the box are known.
3-All conectivities between: bodies and faces, faces and lines, lines and points
Notice that in general some of the faces might not be part of the defition of any body.
Question: What algorithm can be used to obtain a defenition (such as the one used here) of all the fragments of body intercepting with the box, bodies totaly inside the box and (most important) isolated voids of space inside of the box?
My ideas about the problem:
1- I think it is helpfull to think of a simpler problem in 2D first, where bodies are simple poligons or 2D shapes.
2- If the problem does not involve voids, then the solution would revolve arround the following idea: Since we know how everything is conected bodies-faces-lines... once we pick a face of a body we can pick also the lines of that face and the faces connected with it, that are also inside the box and connected to that body. Repeating the procedure we can get all the faces needed to define a fragment the body (or the body itself if completly inside of the box)...
3- When the problem involve voids, things get more complicated as it becomes dificult to know what faces belong to a particular isolated void.
4- So far I am thinking to divide the algorith into 2 stages: 1st dealing with bodies and 2nd dealing with voids. So that the second part would deal with voids only. That second part could eventualy be resolved by breaking the system of surfaces into 2 parts, and doing this recursively again and again in order to obtains parts with a single void. But I also dont know what kind of algorithm could break the set of surfaces and preserve the voids.
Thank you all!