I'm an engineer and I recently took a course at my local university about CAD curves and surfaces. I understand how NURBS surfaces work and how to generate the complex surfaces that models consist of.
What I don't understand, however, is how they determine that the surfaces are properly joined together to make a solid. I've searched in textbooks and in journals and all I've been able to come up with is something about the Euler characteristic.
Can anyone shed some light on this?
The first step is to determine whether or not the surfaces form a 2-manifold. In CAD terms, this means that each edge is shared by exactly two faces. This is necessary, but is not enough, by itself, because the faces of a 2-manifold might be self-intersecting, which would mean that (arguably) they do not define a valid solid. Imagine a cube-like shape, with six faces, each of which is a NURBS surface. This is certainly a 2-manifold, and it defines a solid body. Now take the top face and deform it's middle portion downwards. Keep pulling downwards until the top face passes through the bottom face. You still have a 2-manifold, but it no longer defines a solid body.
The Euler characteristic is (originally) a property of polyhedra (solid bodies wih planar faces). It can be extended to curved surfaces, but it's not much value in telling you whether or not you have a solid body. Again, think about the cube-like model described above. As you deform its surfaces, its ability to represent a valid solid body will change, but its Euler characteristic will not.