Builtin Library
- ..
- .metadata218 B
- README.md1.8 KB
- boundary.module
- init.luau3.1 KB
README.md
topology.boundary (procNode)
The open boundary of a surface: the edges exactly one participating face borders, as a 0/1 group on the edge and point classes, plus the ordered loops they form, read back as a Data record.
Inputs
geometry(Geometry): the geometry whose open edges are traced.group(String, default""): names a 0/1 attribute onclassrestricting which faces take part; empty, the whole mesh takes part. A name the class does not carry is refused.class(String, default"primitive"): the classgrouplives on:"edge","point","primitive"or"vertex".promote(String, default"all"): how a group on a class other than"primitive"becomes a face set:"all"takes the faces every one of whose elements of that class is in the group,"any"the faces at least one is.output(String, default"boundary"): the name the boundary is written under: a 0/1 group on the edge class for the open edges, the same name on the point class for their endpoints, and a detail attribute<output>EdgeCount.
Outputs
A call answers a record by output name.
geometry(Geometry): the input with theoutputgroups on the edge and point classes and the detail<output>EdgeCount.boundary(Data):count(open edges),edges(their ids),pointCount,loops(each loop's point ids, starting at the low point of its lowest edge and running through that edge to its high point),loopCount,loopLengths,simple(every boundary point has exactly two boundary edges),closed(no open edge) andgroup.
Example
local open = g.topology.boundary({ geometry = g.mesh.grid({}) })
local loops = g.value.get({ data = open.boundary, path = "loopCount" })