There’s two common ways to approach this:
- A 2 dimensional object embedded in a 2+ dimensional space.
- An N-1 dimensional object embedded in an N dimensional space.
Let’s keep it simple for the time being and limit ourselves to 2-d surfaces and 3-d embedding spaces, as that is what almost all CAD programs deal with. In such a setting a surface can be defined as the set of loci along with adjacency relations (in topology I think these are called ‘neighbourhoods’ or ‘localities’, not 100% sure those are exactly the same thing.) When you have adjacencies, you can ‘walk’ along a surface by stepping from one locus onto any nearby locus, and as such travel along a path from one point to another. Not every mathematical surface is continuous, it can be made up of disjoint regions that share no neighbourhoods between them.
Add a distance metric to this entity and you graduate from topological surfaces to geometric surfaces.
Yes it’s an example. As are Nurbs surfaces and meshes. They are all types of surface, but the core notion of a surface is far broader than you could achieve with either nurbs or t-splines.
See me response to point #2.
Implicit surface equations and iso-surfaces are also types of surfaces that you often cannot represent with a single nurbs surface.
I was specifically talking about mapping of open sets to other open sets within a mathematical space. Trims are a B-Rep implementation details well beyond the generality of what surfaces are, and the fact that there’s a command called
_Patch is entirely incidental and unrelated.