TAPESTRY: The Art of Representation and Abstraction
Data - Data Structure - Leaks vs. Water-tight
What's it all about?
A data-set of six 2D "squares" may, or may not, define the boundary of a cube. On the other hand, a data-set consisting of one "cube" (as defined by the primitives of the program) probably does. Unfortunately, the "cube" has kind of limited utility; it can't be stretched into other shapes, with notches cut into it, etc. Clearly the squares can be put together in such a way that there are no gaps, no "leaks" where (hypothetical) water would be able to leak out, but how can we be sure?
Euler's Theorem
The study of topology is concerned with the relationships between edges, surfaces, boundaries, and solids. You may have noticed, for instance, that each edge of a cube is shared by exactly two surfaces, or that if you total-up the angles of all faces that meet at each vertex, it's always less than 360 degrees. In fact there are a number of these relationships that topologists have found over the years. Euler was one of the mathematicians that studied these relationships and developed some checks that can be used to guarantee that a collection of boundary faces is a correct surface for a solid--no gaps and no overlaps. In short-hand, the boundaries are said to be water-tight. The equations expressing these relationships are called Euler's Theorem.
Who cares?
Programs trying to compute the volume of an object represented by a b-rep surface will fail if the boundary does not close. Programs cutting sections through the geometry of a "leaky" solid may fail when the "cut line" for a solid doesn't close on itself. 3D deposition printers cannot correctly "print" an object that leaks.
What to do?
A solid-modeling program need only check the geometry of the model after each modeling step, checking the count of faces, edges, etc. in order to know if the resulting geometry remains water-tight. Similarly, a collection of faces can be tested to determine if they represent a leaky b-rep or a true solid.
Gaps may be "healed" automatically by moving "near" points to be exact matches, or they may be filled with operations that "blend between surfaces".
Last updated: April, 2014