Link Search Menu Expand Document

Flag Nodes

PCGEx | Cluster : Flag Nodes

Find conditional-based states to nodes within a graph

The Flag Nodes node identifies and marks complex, non-mutually exclusive states within a cluster by applying filters and conditions to bitmask attributes, allowing for fine-tuned control over node selection and flagging based on specific criteria.


Vtx
Endpoints of the input Edges
Edges
Edges associated with the input Vtxs
Flags
Node flags and their associated filters
Vtx
Endpoints of the output Edges
Edges
Edges associated with the output Vtxs

Table of content


The Flag Nodes node helps you find & mark complex, non-mutually exclusive states on each Vtx of a cluster. It takes any number of Node Flag and processes their associated filters & conditions in order to update a bitmask attribute on individual points. It is primarily used to identify nodes within a graph that meet very specific set of criterias that are not mutually exclusive.
Output attribute can then be filtered using 🝖 Bitmask, and works with the Bitmasks toolset.

Bitmasks & bit fields can be obscure to work with if it’s not something you’re used to. Sadly the Wikipedia article on the topic isn’t super helpful, and digging into the specifics wouldn’t be very productive either. If you have a user-friendly resources I could add to the doc, please poke me.

Bitmasks fields in PCGEx are using a int64, which loosely translate as storing 63 boolean values on a single attribute.

details/flag-nodes/flag-nodes-lead.png

Order of operation

Connected s are first sorted (ascending) using their individual Priority, and then processed in that order; using the result of the previous operation, if any.
What this means is higher priorities have the ability to radically change the entire bitmask, should you chose to.
It synergize very well with the Conditional Actions node that lets you match & set attributes using filters; such as the 🝖 Bitmask one.

Properties


Property Description
Settings
Flag Attribute
int64
This is the name of the attribute the final bitmask will be written to.
Initial Flag This is the flag to start operating from.
Setting this value manually isn’t recommended, instead use a Bitmask and plug it into the override pin.

Individual Node Flag


Node Flag

A single flag definition


Available Cluster Filters


🝖 Adjacency (Node)

Check if adjacent node meet specific conditions

🝖 Edge Direction (Node)

Check if adjacent node meet specific conditions

🝖 Neighbors Count (Node)

Check a node’ neighbors count

🝖 Edge Direction (Edge)

Check if the edge direction is within a given range.

🝖 Endpoints Compare (Numeric)

Compare the value of an attribute on each of the edge endpoint.

🝖 Endpoints Compare (String)

Compare the value of an attribute on each of the edge endpoint.

🝖 Neighbors Count (Edge)

Check a node’ neighbors count


Available Regular Filters


🝖 AND / OR (Group)

Group multiple filters to set up complex AND/OR branches.

🝖 Adjacency (Node)

Check if adjacent node meet specific conditions

🝖 Compare Nearest (Numeric)

The Numeric Comparison Filter compares the arithmetic value of an attribute against the closest point from another dataset.

🝖 Compare (Numeric)

The Numeric Comparison Filter compares the arithmetic value of two attributes

🝖 Edge Direction (Node)

Check if adjacent node meet specific conditions

🝖 Compare (String)

Compares two string-like attributes against each other.

🝖 Neighbors Count (Node)

Check a node’ neighbors count

🝖 Bool

Performs a simple boolean comparison, converting numeric values to true (> 0) or false (<= 0).

🝖 Within Range

Checks if an attribute value falls within a specified range.

🝖 Dot Product

Compares the dot product of two direction vectors against a third value.

🝖 Modulo Comparison

Compares the modulo of two attributes against a third operand, with configurable comparisons and tolerance.

🝖 Edge Direction (Edge)

Check if the edge direction is within a given range.

🝖 Bounds

Checks if a point is inside or outside the provided bounds, with options for bounds types and an epsilon adjustment.

🝖 Endpoints Compare (Numeric)

Compare the value of an attribute on each of the edge endpoint.

🝖 Endpoints Compare (String)

Compare the value of an attribute on each of the edge endpoint.

🝖 Bitmask

Checks specific flags in an int64 bitmask attribute with configurable mask types, comparisons, and an option to invert results.

🝖 Neighbors Count (Edge)

Check a node’ neighbors count

🝖 Random

Random filter.

🝖 Mean Value

The Mean Value Filter compares per-point values of an attribute against the mean statistical value of that same attribute.

🝖 Self Compare (Numeric)

Compares the numeric value at one index against the same attribute at another index.

🝖 Self Compare (String)

Compares the string value at one index against the same attribute at another index.

🝖 Spline Inclusion

Checks against how a point is included in a spline.

🝖 Path Inclusion

Checks against how a point is included in a path.