Skip to main content

Module knit

Module knit 

Source
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 faces stand in into one, along the edges where they meet, for the operation K — see the module docs. Closed up, the result is a solid named knit(K); with solid, 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.
KnitArgs

Functions§

knit
Joins sheets (see the module docs), what is within gap of each other as one, and returns what they became: a solid named namer’s root once they close up, a sheet otherwise — an error naming the open edges, if solid asks for one.