Legend

Class
Struct
Enum
Interface
Delegate
Constructor
Method
Property
Event
Field

Constructor: Structure<TCell>(IEnumerable<TCell>, IEnumerable<Link<TCell>>, Func<TCell, IEnumerable<TCell>>)

Declaration

public Structure<TCell>(
    IEnumerable<TCell> cells,
    IEnumerable<Link<TCell>> links = null,
    Func<TCell, IEnumerable<TCell>> getNeighbors = null
)

Summary

Constructs a structure with the specified cells and links between them.

Parameters

IEnumerable<TCell>cells The set of cells the structure consists of; for example, Square.Rectangle(int, int, int, int) or Hex.LargeHexagon(int, Hex).
IEnumerable<Link<TCell>>links An explicit set of links (connections) between cells, defining which pairs of cells are neighbors. See remarks.
Func<TCell, IEnumerable<TCell>>getNeighbors A delegate that defines the neighbors of each cells. See remarks.

Remarks

One of the following three must be true:

  • links is specified and getNeighbors is null. In this case, the explicit set of links is used.
  • getNeighbors is specified and links is null. In this case, the delegate is called on every cell to discover all links. The delegate is allowed to return additional cells that are not in cells; those will be discarded.
  • TCell implements INeighbor<TCell>, in which case the behavior is the same as with getNeighbors but INeighbor<TCell>.Neighbors is used to retrieve the neighbors.