Link Search Menu Expand Document

Voronoi 2D

PCGEx | Cluster : Voronoi 2D

Outputs a 2D Voronoi graph.

The Voronoi 2D node outputs a 2D Voronoi graph with options like balanced, canon, or centroid positioning. Adjust bounds, prune sites, and mark edges on the hull.


In
Points clouds that will be triangulated
Vtx
Endpoints of the output Edges
Edges
Edges associated with the output Vtxs

See Example Project @ EdgesAndGraphs/PCGEx_Graph_Voronoi-2D


Table of content


This node creates a 2D Voronoi diagram from the input points. If you’d like to know more about Voronoi intrinsic properties, check out the Wikipedia article!

details/diagrams/diagrams-voronoi-2d-lead.png

Properties


Property Description
Settings  
Method Defines how the position of the Voronoi site is computed. See below for more infos.
Expand Bounds Value added on each axis of the initial input points bounds, used for maths & processes involving bounds.
Prune Out of Bounds Depending on the selected method, the diagram will produce out-of-bounds points (up to ±inf). Enabling this option lets you remove those points from the output.
Hull Attribute Name
Boolean
If enabled, will flag output Vtx points that lie on the convex hull of the underlying Delaunay diagram.
Note that this is not the exact hull, but rather an approximation.
Mark Edge on Touch If enabled, edges that have at least a point on the Hull as marked as being on the hull; as opposed to only be marked as hull edges if both endpoints are on the hull.

Note that enabling Prune Out of Bounds points has a theorical risk of creating more than one finite cluster as a result.


Voronoi site position


details/diagrams/diagrams-voronoi-3d-sites.png

Mode  
placeholder.jpg Centroid
Uses the centroid of the Delaunay site.
While more visually pleasing, some concave sites may appear depending on the initial topology.
placeholder.jpg Canon (Circumcenter)
Uses the circumcenter of the Delaunay triangle.
This is the true voronoi algorithm, it guarantees only convex sites.
placeholder.jpg Centroid
Uses the centroid of the Delaunay site for the point that are outside the bounds, otherwise use circumcenters.
Best of both worlds, or worst of both worlds; depending on how you look at it.

Projection Settings


Property Description
Target Distance Target Distance reference..
Whether to consider point bounds, and if so, how.
Fuse Method Lets you choose the method for finding neighbors & collocated points
Voxel Grid Offset Offset the voxelized grid by an constant amount.
By default the center of the grid is 0,0,0, which may look like an undersirable offset. That offset can be manually compensated using this parameter.
Inline Insertion Using the Octree fuse method is not deterministic by default.
Enabling inlined insertion will make it so, at the cost of speed.
Source Distance Source Distance reference.
Whether to consider point bounds, and if so, how.
Tolerance  
Component Wise Tolerance If enabled, lets you set individual tolerance in world space for each X, Y and Z axis.
Tolerance Uniform tolerance. This represent the radius within which elements will be considered in fuse range.
Tolerances If enabled, represent individual axis’ radius within which elements will be considered in fuse range.
Local Tolerance If enabled, lets your use per-point tolerance value.
NOT IMPLEMENTED
Property Description
Enable Self Intersection If enabled, a cluster will test if intersection exists against itself. Otherwise, only check against other clusters.
Fuse Details  
Source Distance Source Distance reference.
Whether to consider point bounds, and if so, how.
Component Wise Tolerance If enabled, lets you set individual tolerance in world space for each X, Y and Z axis.
Tolerance Uniform tolerance. This represent the radius within which elements will be considered in fuse range.
Tolerances If enabled, represent individual axis’ radius within which elements will be considered in fuse range.
Local Tolerance If enabled, lets your use per-point tolerance value.
NOT IMPLEMENTED
Outputs  
Snap on Edge If enabled, snap the intersection position onto the original edge, as opposed to the reverse.
Intersector Attribute Name
bool
If enabled, flag the points that intersected with an edge.

The projection settings control how the point position is translated to a 2D space before the graph is computed; and how this projection will translate back to the original space, if relevant.

Property Description
Projection Normal Normal vector of the plane used for projection.
By default, the projection plan normal is Up; so the graph is computed over the X Y plane.
Local Projection Normal If enabled, uses a per-point projection vector.
Local Normal Attribute ti read normal from,

Local projection normal is very powerful but can also be very clunky to use – it’s very easy to end up with singularities that will prevent the graph from being properly computed.


Cluster Output Settings

See Working with Clusters - Cluster Output Settings.