Builtin Library
README.md
points.filter (procNode)
Keeps the points a test says to. The value each point is tested by is the mask field when it is wired, else the named
attribute's values (attribute.labels). The test is a comparison (field.compare): above threshold, or, when
equals is given, equal to the index that value or label names. elements.keep on the points carries every attribute
and the detail onto the points that stay, counted on the device. Given neither a mask nor an attribute, the points come
back as they are.
Inputs
points(Geometry): the cloud to thin. Every point attribute and every detail value is carried onto the survivors, so a colour or an index still belongs to the point it started on.mask(Field): the per-point value tested; a point stays when it is abovethreshold. Wired, it decides, andattributeis read only when this is empty.threshold(Float, default 0.5): a point stays when its value is strictly above this. Raising it keeps fewer points.attribute(String): a point attribute to test instead of wiringmask. A name the points do not carry is refused, naming the ones they do.equals(String | Float): keeps the points whoseattributeequals this instead of testing it againstthreshold. It is a number, or a label: one of the texts a text attribute holds, or one of the names the points' detaillabelsgives a numeric one (how one solver's particles are split back by thestreamtheir source named).
Outputs
points: the points that stay.
Which graph calls it
This node is built with proc.graph and g:node, and a proc.graph graph calls it as g:node("<id>", "points.filter", ...). A graph built with proc.define calls g.points.filter in its place, the node written in the call form; g.op.points.filter there is refused, naming it.