Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commitdd348ac6c3

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 above threshold. Wired, it decides, and attribute is 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 wiring mask. A name the points do not carry is refused, naming the ones they do.
  • equals (String | Float): keeps the points whose attribute equals this instead of testing it against threshold. It is a number, or a label: one of the texts a text attribute holds, or one of the names the points' detail labels gives a numeric one (how one solver's particles are split back by the stream their 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.