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

Check if adjacent node meet specific conditions

🝖 Edge Direction

Check if adjacent node meet specific conditions

🝖 Neighbors Count

Check a node’ neighbors count


Available Regular Filters


🝖 Group (AND/OR)

The Group Filter allows setting up complex AND/OR branches.

🝖 Compare (Numeric)

The Numeric Comparison Filter compares the arithmetic value of two attributes

🝖 Compare (String)

The Compare String Filter compares two strings

🝖 Bool

The Bool Filter does a simple bool comparison

🝖 Dot Product

The Dot Product Filter compares the dot product of two direction vectors

🝖 Within Range

The Within Range Filter checks if a value is inside a given range

🝖 Modulo Comparison

The Modulo Comparison Filter compares the module value of two attributes against a third operand

🝖 Bounds

The Bounds Filter check if a point is inside or outside provided bounds

🝖 Bitmask

The Bitmask Filter compares a bitmask against another

🝖 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)

The Numeric Comparison Filter compares the arithmetic value of two attributes

🝖 Self Compare (String)

The Compare String Filter compares two strings

🝖 Adjacency

Check if adjacent node meet specific conditions

🝖 Edge Direction

Check if adjacent node meet specific conditions

🝖 Neighbors Count

Check a node’ neighbors count