Expand description
Knit: sheets whose edges meet, joined into one — and into a solid,
once they close up.
Joining is done on the sheets’ description (BodySpec), which is then
built anew as one body:
- vertices of different sheets at one point become one;
- edges then running between the same two vertices become one where their curves do too — the middle of each on the other. That an edge joins the same vertices is the topological question; the curves are asked only to tell apart edges that share both ends but run differently, as the two halves of a circle do;
- faces are turned where a shared edge would otherwise be run the same way by both: a body’s faces wind consistently, each edge run one way by one face and the other way by the other.
What is left used by one face only is an open edge. With none, the sheets close up into a solid, its faces turned to point out of it.
An edge that runs along two of another sheet — a T-junction, where a
vertex of that sheet lies inside the edge — is first split there
(split_at_junctions), so the edges meet end to end. Otherwise edges
that meet only in part are not joined: they are open edges, and a solid
asked for is refused, naming them.
Sheets made to some accuracy — another system’s, a file’s — meet only
to within it. The user can state it, as a gap: then what is within the
gap of each other is joined, and, once the sheets close up, every vertex
joined is moved to where the surfaces around it meet and every edge
from it to where its two faces do (geop_lib_shell::rebuilt). The gap is
never guessed, nor grown until things join.
Structs§
- Knit
- Joins the sheets the faces named
facesstand in into one, along the edges where they meet, for the operationK— see the module docs. Closed up, the result is a solid namedknit(K); withsolid, it must close up, and open edges are refused by name. Every face, edge and vertex keeps its name, of two joined into one the first sheet’s. - Knit
Args
Functions§
- knit
- Joins
sheets(see the module docs), what is withingapof each other as one, and returns what they became: a solid namednamer’s root once they close up, a sheet otherwise — an error naming the open edges, ifsolidasks for one.