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.