Portability | portable |
---|---|

Stability | experimental |

Maintainer | amy@nualeargais.ie |

Safe Haskell | Safe-Inferred |

A regular arrangement of octagonal tiles.
Octagons won't tile a regular plane (there will be diamond-shaped
gaps between the tiles), but they will tile a *hyperbolic* plane.
(Alternatively, you can think of these as squares on a board game
where diagonal moves are allowed.)
The userguide, with illustrations, is available at
https://github.com/mhwombat/grid/wiki.
Also see `Math.Geometry.Grid`

for examples of how to use this class.

- data UnboundedOctGrid
- data RectOctGrid
- rectOctGrid :: Int -> Int -> RectOctGrid
- data TorOctGrid
- torOctGrid :: Int -> Int -> TorOctGrid

# Unbounded grid with octagonal tiles

data UnboundedOctGrid Source

An unbounded grid with octagonal tiles. The grid and its indexing scheme are illustrated in the user guide, available at https://github.com/mhwombat/grid/wiki.

# Rectangular grid with octagonal tiles

data RectOctGrid Source

A rectangular grid with octagonal tiles. The grid and its indexing scheme are illustrated in the user guide, available at https://github.com/mhwombat/grid/wiki.

rectOctGrid :: Int -> Int -> RectOctGridSource

produces a rectangular grid with `rectOctGrid`

r c`r`

rows
and `c`

columns, using octagonal tiles. If `r`

and `c`

are both
nonnegative, the resulting grid will have `r*c`

tiles. Otherwise,
the resulting grid will be null and the list of indices will be
null.

# Toroidal grid with octagonal tiles

data TorOctGrid Source

A toroidal grid with octagonal tiles. The grid and its indexing scheme are illustrated in the user guide, available at https://github.com/mhwombat/grid/wiki.

torOctGrid :: Int -> Int -> TorOctGridSource

returns a toroidal grid with `torOctGrid`

r c`r`

rows and `c`

columns, using octagonal tiles. If `r`

and `c`

are
both nonnegative, the resulting grid will have `r*c`

tiles. Otherwise,
the resulting grid will be null and the list of indices will be null.