Class Voronator
Computes a voronoi diagram in a 2d plane,
optionally clipped to a rectangle.
Inheritance
System.Object
Voronator
Assembly: Sylves.dll
Syntax
public class Voronator : Object
Constructors
Voronator(IList<Vector2>)
Declaration
public Voronator(IList<Vector2> points)
Parameters
| Type |
Name |
Description |
| System.Collections.Generic.IList<Vector2> |
points |
|
Voronator(IList<Vector2>, Vector2, Vector2)
Declaration
public Voronator(IList<Vector2> points, Vector2 clipMin, Vector2 clipMax)
Parameters
Properties
Delaunator
Declaration
public Delaunator Delaunator { get; }
Property Value
Inedges
Declaration
public int[] Inedges { get; }
Property Value
| Type |
Description |
| System.Int32[] |
|
TriangleVertices
Declaration
public List<Vector2> TriangleVertices { get; }
Property Value
| Type |
Description |
| System.Collections.Generic.List<Vector2> |
|
Methods
ClippedNeighbors(Int32)
Returns the Voronoi cells that border the given cell.
This uses clipping.
Declaration
public IEnumerable<int> ClippedNeighbors(int i)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
|
Returns
| Type |
Description |
| System.Collections.Generic.IEnumerable<System.Int32> |
|
Find(Vector2, Int32)
Finds the voronoi cell that contains the given point, or equivalently,
finds the point that is nearest the given point.
This ignores clipping, so it always succeeds.
Declaration
public int Find(Vector2 u, int i = 0)
Parameters
| Type |
Name |
Description |
| Vector2 |
u |
The point to search for.
|
| System.Int32 |
i |
Optional, the voronoi cell to start the search at. Useful if you know the returned cell will be nearby.
|
Returns
| Type |
Description |
| System.Int32 |
|
GetCentroid(List<Vector2>)
Declaration
public static Vector2 GetCentroid(List<Vector2> points)
Parameters
| Type |
Name |
Description |
| System.Collections.Generic.List<Vector2> |
points |
|
Returns
GetClippedPolygon(Int32)
Returns the vertices of the voronoi cell i after clipping to the clipping rectangle.
Returns null if the polygon is fully outside the clipping rectangle.
Declaration
public List<Vector2> GetClippedPolygon(int i)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
|
Returns
| Type |
Description |
| System.Collections.Generic.List<Vector2> |
|
GetPolygon(Int32)
Returns the vertices of the voronoi cell, without any clipping.
This means that unbounded cells will be missing the edges that extend to infinity,
and may have less than 3 vertices.
Declaration
public List<Vector2> GetPolygon(int i)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
|
Returns
| Type |
Description |
| System.Collections.Generic.List<Vector2> |
|
GetPolygon(Int32, List<Vector2>, out Vector2, out Vector2)
Supplies the vertices of the voronoi cell, without any clipping.
This means that unbounded cells will be missing the edges that extend to infinity,
and may have less than 3 vertices.
Declaration
public bool GetPolygon(int i, List<Vector2> vertices, out Vector2 ray1, out Vector2 ray2)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
The voronoi cell
|
| System.Collections.Generic.List<Vector2> |
vertices |
Filled with the vertices of the polygon.
|
| Vector2 |
ray1 |
For unbounded cells, the direction of the ray extending from vertex 0. Otherwise, empty.
|
| Vector2 |
ray2 |
For unbounded cells, the direction of the ray extending from vertex 0. Otherwise, empty.
|
Returns
| Type |
Description |
| System.Boolean |
True if successful
|
GetPolygonStatus(Int32)
Declaration
public Voronator.PolygonStatus GetPolygonStatus(int i)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
|
Returns
GetRelaxedPoints()
Returns the centroid of each voronoi cell.
This is suitable for use with Lloyd relaxation.
Unbounded cells are clipped down, which tends to move them inowards.
Declaration
public List<Vector2> GetRelaxedPoints()
Returns
| Type |
Description |
| System.Collections.Generic.List<Vector2> |
|
Neighbors(Int32)
Returns the Voronoi cells that border the given cell.
This ignores clipping.
This may give surprising results in degenerate cases that more than 3 cells meet at a point.
Declaration
public IEnumerable<int> Neighbors(int i)
Parameters
| Type |
Name |
Description |
| System.Int32 |
i |
|
Returns
| Type |
Description |
| System.Collections.Generic.IEnumerable<System.Int32> |
|