Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commita26cdab9a3

README.md

group

Named selections over a mesh's points, vertices, edges or faces, for other ops to act on.

The definitions live in proc.ops.groups; this pack is what puts them in the op registry, so procgen.searchNodes("", { pack = "group" }) lists the family and procgen.describeNode("op.<id>") describes any one of them.

Ops

  • group.create — Make a named group from a mask Field (or an existing attribute column) over an element class
  • group.by_normal — Group the elements whose normal is within angle degrees of direction, the limit included (at 90 degrees a face exactly perpendicular to the direction joins) — the top faces, the ones facing a camera, the overhangs
  • group.by_bounds — Group the elements inside a region — a box of size about center, a sphere of radius about it, or the half-space on the axis side of the plane through it
  • group.by_random — Group a deterministic random subset: each element joins when its own draw falls below fraction
  • group.by_island — Group whole connected components — the islands topology.islands labels, so an island id means the same shell to every op that reads one
  • group.combine — Set algebra between two groups of the same class: union, intersect, subtract (a without b), or xor
  • group.invert — Group every element of the class that the group named by group leaves out
  • group.expand — Grow the group named by group outward by rings adjacency rings — every ring adds the elements touching the selection
  • group.shrink — Erode the group named by group inward by rings adjacency rings — every ring drops the members that touch an element outside the selection
  • group.list — Every group the domain carries → Data: count, and groups = { name, class, members, elements, fraction } sorted by class then name
  • group.info — One group in detail → Data: name, class, members, elements, fraction, and (with list_members) the member element ids
  • group.remove — Drop a group from the domain — its 0/1 column and its index entry together, so group.list reports what the domain carries