grid-7.8.15: Tools for working with regular grids (graphs, lattices).
Copyright(c) Amy de Buitléir 2012-2019
LicenseBSD-style
Maintaineramy@nualeargais.ie
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Math.Geometry.GridInternal

Description

A module containing private Grid internals. Most developers should use Grid instead. This module is subject to change without notice.

Synopsis

Documentation

class Grid g where Source #

A regular arrangement of tiles. Minimal complete definition: Index, Direction, indices, distance, directionTo.

Minimal complete definition

indices, distance, directionTo

Associated Types

type Index g Source #

type Direction g Source #

Methods

indices :: g -> [Index g] Source #

Returns the indices of all tiles in a grid.

distance :: g -> Index g -> Index g -> Int Source #

distance g a b returns the minimum number of moves required to get from the tile at index a to the tile at index b in grid g, moving between adjacent tiles at each step. (Two tiles are adjacent if they share an edge.) If a or b are not contained within g, the result is undefined.

minDistance :: g -> [Index g] -> Index g -> Int Source #

minDistance g bs a returns the minimum number of moves required to get from any of the tiles at indices bs to the tile at index a in grid g, moving between adjacent tiles at each step. (Two tiles are adjacent if they share an edge.) If a or any of bs are not contained within g, the result is undefined.

neighbours :: Eq (Index g) => g -> Index g -> [Index g] Source #

neighbours g a returns the indices of the tiles in the grid g which are adjacent to the tile with index a.

neighboursOfSet :: Eq (Index g) => g -> [Index g] -> [Index g] Source #

neighboursOfSet g as returns the indices of the tiles in the grid g which are adjacent to any of the tiles with index in as.

neighbour :: (Eq (Index g), Eq (Direction g)) => g -> Index g -> Direction g -> Maybe (Index g) Source #

neighbour g d a returns the indices of the tile in the grid g which is adjacent to the tile with index a, in the direction d.

numNeighbours :: Eq (Index g) => g -> Index g -> Int Source #

numNeighbours g a returns the number of tiles in the grid g which are adjacent to the tile with index a.

contains :: Eq (Index g) => g -> Index g -> Bool Source #

g `contains` a returns True if the index a is contained within the grid g, otherwise it returns false.

tileCount :: g -> Int Source #

Returns the number of tiles in a grid. Compare with size.

null :: g -> Bool Source #

Returns True if the number of tiles in a grid is zero, False otherwise.

nonNull :: g -> Bool Source #

Returns False if the number of tiles in a grid is zero, True otherwise.

edges :: Eq (Index g) => g -> [(Index g, Index g)] Source #

A list of all edges in a grid, where the edges are represented by a pair of indices of adjacent tiles.

viewpoint :: g -> Index g -> [(Index g, Int)] Source #

viewpoint g a returns a list of pairs associating the index of each tile in g with its distance to the tile with index a. If a is not contained within g, the result is undefined.

isAdjacent :: g -> Index g -> Index g -> Bool Source #

isAdjacent g a b returns True if the tile at index a is adjacent to the tile at index b in g. (Two tiles are adjacent if they share an edge.) If a or b are not contained within g, the result is undefined.

adjacentTilesToward :: Eq (Index g) => g -> Index g -> Index g -> [Index g] Source #

adjacentTilesToward g a b returns the indices of all tiles which are neighbours of the tile at index a, and which are closer to the tile at b than a is. In other words, it returns the possible next steps on a minimal path from a to b. If a or b are not contained within g, or if there is no path from a to b (e.g., a disconnected grid), the result is undefined.

minimalPaths :: Eq (Index g) => g -> Index g -> Index g -> [[Index g]] Source #

minimalPaths g a b returns a list of all minimal paths from the tile at index a to the tile at index b in grid g. A path is a sequence of tiles where each tile in the sequence is adjacent to the previous one. (Two tiles are adjacent if they share an edge.) If a or b are not contained within g, the result is undefined.

Tip: The default implementation of this function calls adjacentTilesToward. If you want to use a custom algorithm, consider modifying adjacentTilesToward instead of minimalPaths.

directionTo :: g -> Index g -> Index g -> [Direction g] Source #

directionTo g a b returns the direction(s) of the next tile(s) in a minimal path from the tile at index a to the tile at index b in grid g.

defaultMinDistance :: g -> [Index g] -> Index g -> Int Source #

defaultNeighbours :: g -> Index g -> [Index g] Source #

defaultNeighboursOfSet :: Eq (Index g) => g -> [Index g] -> [Index g] Source #

defaultNeighbour :: (Eq (Index g), Eq (Direction g)) => g -> Index g -> Direction g -> Maybe (Index g) Source #

defaultTileCount :: g -> Int Source #

defaultEdges :: Eq (Index g) => g -> [(Index g, Index g)] Source #

defaultIsAdjacent :: g -> Index g -> Index g -> Bool Source #

defaultAdjacentTilesToward :: Eq (Index g) => g -> Index g -> Index g -> [Index g] Source #

defaultMinimalPaths :: Eq (Index g) => g -> Index g -> Index g -> [[Index g]] Source #

Instances

Instances details
Grid XCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Methods

indices :: XCylTriGrid -> [Index XCylTriGrid] Source #

distance :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> Int Source #

minDistance :: XCylTriGrid -> [Index XCylTriGrid] -> Index XCylTriGrid -> Int Source #

neighbours :: XCylTriGrid -> Index XCylTriGrid -> [Index XCylTriGrid] Source #

neighboursOfSet :: XCylTriGrid -> [Index XCylTriGrid] -> [Index XCylTriGrid] Source #

neighbour :: XCylTriGrid -> Index XCylTriGrid -> Direction XCylTriGrid -> Maybe (Index XCylTriGrid) Source #

numNeighbours :: XCylTriGrid -> Index XCylTriGrid -> Int Source #

contains :: XCylTriGrid -> Index XCylTriGrid -> Bool Source #

tileCount :: XCylTriGrid -> Int Source #

null :: XCylTriGrid -> Bool Source #

nonNull :: XCylTriGrid -> Bool Source #

edges :: XCylTriGrid -> [(Index XCylTriGrid, Index XCylTriGrid)] Source #

viewpoint :: XCylTriGrid -> Index XCylTriGrid -> [(Index XCylTriGrid, Int)] Source #

isAdjacent :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> Bool Source #

adjacentTilesToward :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> [Index XCylTriGrid] Source #

minimalPaths :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> [[Index XCylTriGrid]] Source #

directionTo :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> [Direction XCylTriGrid] Source #

defaultMinDistance :: XCylTriGrid -> [Index XCylTriGrid] -> Index XCylTriGrid -> Int Source #

defaultNeighbours :: XCylTriGrid -> Index XCylTriGrid -> [Index XCylTriGrid] Source #

defaultNeighboursOfSet :: XCylTriGrid -> [Index XCylTriGrid] -> [Index XCylTriGrid] Source #

defaultNeighbour :: XCylTriGrid -> Index XCylTriGrid -> Direction XCylTriGrid -> Maybe (Index XCylTriGrid) Source #

defaultTileCount :: XCylTriGrid -> Int Source #

defaultEdges :: XCylTriGrid -> [(Index XCylTriGrid, Index XCylTriGrid)] Source #

defaultIsAdjacent :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> Bool Source #

defaultAdjacentTilesToward :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> [Index XCylTriGrid] Source #

defaultMinimalPaths :: XCylTriGrid -> Index XCylTriGrid -> Index XCylTriGrid -> [[Index XCylTriGrid]] Source #

Grid YCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Methods

indices :: YCylTriGrid -> [Index YCylTriGrid] Source #

distance :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> Int Source #

minDistance :: YCylTriGrid -> [Index YCylTriGrid] -> Index YCylTriGrid -> Int Source #

neighbours :: YCylTriGrid -> Index YCylTriGrid -> [Index YCylTriGrid] Source #

neighboursOfSet :: YCylTriGrid -> [Index YCylTriGrid] -> [Index YCylTriGrid] Source #

neighbour :: YCylTriGrid -> Index YCylTriGrid -> Direction YCylTriGrid -> Maybe (Index YCylTriGrid) Source #

numNeighbours :: YCylTriGrid -> Index YCylTriGrid -> Int Source #

contains :: YCylTriGrid -> Index YCylTriGrid -> Bool Source #

tileCount :: YCylTriGrid -> Int Source #

null :: YCylTriGrid -> Bool Source #

nonNull :: YCylTriGrid -> Bool Source #

edges :: YCylTriGrid -> [(Index YCylTriGrid, Index YCylTriGrid)] Source #

viewpoint :: YCylTriGrid -> Index YCylTriGrid -> [(Index YCylTriGrid, Int)] Source #

isAdjacent :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> Bool Source #

adjacentTilesToward :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> [Index YCylTriGrid] Source #

minimalPaths :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> [[Index YCylTriGrid]] Source #

directionTo :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> [Direction YCylTriGrid] Source #

defaultMinDistance :: YCylTriGrid -> [Index YCylTriGrid] -> Index YCylTriGrid -> Int Source #

defaultNeighbours :: YCylTriGrid -> Index YCylTriGrid -> [Index YCylTriGrid] Source #

defaultNeighboursOfSet :: YCylTriGrid -> [Index YCylTriGrid] -> [Index YCylTriGrid] Source #

defaultNeighbour :: YCylTriGrid -> Index YCylTriGrid -> Direction YCylTriGrid -> Maybe (Index YCylTriGrid) Source #

defaultTileCount :: YCylTriGrid -> Int Source #

defaultEdges :: YCylTriGrid -> [(Index YCylTriGrid, Index YCylTriGrid)] Source #

defaultIsAdjacent :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> Bool Source #

defaultAdjacentTilesToward :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> [Index YCylTriGrid] Source #

defaultMinimalPaths :: YCylTriGrid -> Index YCylTriGrid -> Index YCylTriGrid -> [[Index YCylTriGrid]] Source #

Grid TorTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Index TorTriGrid Source #

type Direction TorTriGrid Source #

Methods

indices :: TorTriGrid -> [Index TorTriGrid] Source #

distance :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> Int Source #

minDistance :: TorTriGrid -> [Index TorTriGrid] -> Index TorTriGrid -> Int Source #

neighbours :: TorTriGrid -> Index TorTriGrid -> [Index TorTriGrid] Source #

neighboursOfSet :: TorTriGrid -> [Index TorTriGrid] -> [Index TorTriGrid] Source #

neighbour :: TorTriGrid -> Index TorTriGrid -> Direction TorTriGrid -> Maybe (Index TorTriGrid) Source #

numNeighbours :: TorTriGrid -> Index TorTriGrid -> Int Source #

contains :: TorTriGrid -> Index TorTriGrid -> Bool Source #

tileCount :: TorTriGrid -> Int Source #

null :: TorTriGrid -> Bool Source #

nonNull :: TorTriGrid -> Bool Source #

edges :: TorTriGrid -> [(Index TorTriGrid, Index TorTriGrid)] Source #

viewpoint :: TorTriGrid -> Index TorTriGrid -> [(Index TorTriGrid, Int)] Source #

isAdjacent :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> Bool Source #

adjacentTilesToward :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> [Index TorTriGrid] Source #

minimalPaths :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> [[Index TorTriGrid]] Source #

directionTo :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> [Direction TorTriGrid] Source #

defaultMinDistance :: TorTriGrid -> [Index TorTriGrid] -> Index TorTriGrid -> Int Source #

defaultNeighbours :: TorTriGrid -> Index TorTriGrid -> [Index TorTriGrid] Source #

defaultNeighboursOfSet :: TorTriGrid -> [Index TorTriGrid] -> [Index TorTriGrid] Source #

defaultNeighbour :: TorTriGrid -> Index TorTriGrid -> Direction TorTriGrid -> Maybe (Index TorTriGrid) Source #

defaultTileCount :: TorTriGrid -> Int Source #

defaultEdges :: TorTriGrid -> [(Index TorTriGrid, Index TorTriGrid)] Source #

defaultIsAdjacent :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> Bool Source #

defaultAdjacentTilesToward :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> [Index TorTriGrid] Source #

defaultMinimalPaths :: TorTriGrid -> Index TorTriGrid -> Index TorTriGrid -> [[Index TorTriGrid]] Source #

Grid RectTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Methods

indices :: RectTriGrid -> [Index RectTriGrid] Source #

distance :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> Int Source #

minDistance :: RectTriGrid -> [Index RectTriGrid] -> Index RectTriGrid -> Int Source #

neighbours :: RectTriGrid -> Index RectTriGrid -> [Index RectTriGrid] Source #

neighboursOfSet :: RectTriGrid -> [Index RectTriGrid] -> [Index RectTriGrid] Source #

neighbour :: RectTriGrid -> Index RectTriGrid -> Direction RectTriGrid -> Maybe (Index RectTriGrid) Source #

numNeighbours :: RectTriGrid -> Index RectTriGrid -> Int Source #

contains :: RectTriGrid -> Index RectTriGrid -> Bool Source #

tileCount :: RectTriGrid -> Int Source #

null :: RectTriGrid -> Bool Source #

nonNull :: RectTriGrid -> Bool Source #

edges :: RectTriGrid -> [(Index RectTriGrid, Index RectTriGrid)] Source #

viewpoint :: RectTriGrid -> Index RectTriGrid -> [(Index RectTriGrid, Int)] Source #

isAdjacent :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> Bool Source #

adjacentTilesToward :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> [Index RectTriGrid] Source #

minimalPaths :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> [[Index RectTriGrid]] Source #

directionTo :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> [Direction RectTriGrid] Source #

defaultMinDistance :: RectTriGrid -> [Index RectTriGrid] -> Index RectTriGrid -> Int Source #

defaultNeighbours :: RectTriGrid -> Index RectTriGrid -> [Index RectTriGrid] Source #

defaultNeighboursOfSet :: RectTriGrid -> [Index RectTriGrid] -> [Index RectTriGrid] Source #

defaultNeighbour :: RectTriGrid -> Index RectTriGrid -> Direction RectTriGrid -> Maybe (Index RectTriGrid) Source #

defaultTileCount :: RectTriGrid -> Int Source #

defaultEdges :: RectTriGrid -> [(Index RectTriGrid, Index RectTriGrid)] Source #

defaultIsAdjacent :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> Bool Source #

defaultAdjacentTilesToward :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> [Index RectTriGrid] Source #

defaultMinimalPaths :: RectTriGrid -> Index RectTriGrid -> Index RectTriGrid -> [[Index RectTriGrid]] Source #

Grid ParaTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Methods

indices :: ParaTriGrid -> [Index ParaTriGrid] Source #

distance :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> Int Source #

minDistance :: ParaTriGrid -> [Index ParaTriGrid] -> Index ParaTriGrid -> Int Source #

neighbours :: ParaTriGrid -> Index ParaTriGrid -> [Index ParaTriGrid] Source #

neighboursOfSet :: ParaTriGrid -> [Index ParaTriGrid] -> [Index ParaTriGrid] Source #

neighbour :: ParaTriGrid -> Index ParaTriGrid -> Direction ParaTriGrid -> Maybe (Index ParaTriGrid) Source #

numNeighbours :: ParaTriGrid -> Index ParaTriGrid -> Int Source #

contains :: ParaTriGrid -> Index ParaTriGrid -> Bool Source #

tileCount :: ParaTriGrid -> Int Source #

null :: ParaTriGrid -> Bool Source #

nonNull :: ParaTriGrid -> Bool Source #

edges :: ParaTriGrid -> [(Index ParaTriGrid, Index ParaTriGrid)] Source #

viewpoint :: ParaTriGrid -> Index ParaTriGrid -> [(Index ParaTriGrid, Int)] Source #

isAdjacent :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> Bool Source #

adjacentTilesToward :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> [Index ParaTriGrid] Source #

minimalPaths :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> [[Index ParaTriGrid]] Source #

directionTo :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> [Direction ParaTriGrid] Source #

defaultMinDistance :: ParaTriGrid -> [Index ParaTriGrid] -> Index ParaTriGrid -> Int Source #

defaultNeighbours :: ParaTriGrid -> Index ParaTriGrid -> [Index ParaTriGrid] Source #

defaultNeighboursOfSet :: ParaTriGrid -> [Index ParaTriGrid] -> [Index ParaTriGrid] Source #

defaultNeighbour :: ParaTriGrid -> Index ParaTriGrid -> Direction ParaTriGrid -> Maybe (Index ParaTriGrid) Source #

defaultTileCount :: ParaTriGrid -> Int Source #

defaultEdges :: ParaTriGrid -> [(Index ParaTriGrid, Index ParaTriGrid)] Source #

defaultIsAdjacent :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> Bool Source #

defaultAdjacentTilesToward :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> [Index ParaTriGrid] Source #

defaultMinimalPaths :: ParaTriGrid -> Index ParaTriGrid -> Index ParaTriGrid -> [[Index ParaTriGrid]] Source #

Grid TriTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Index TriTriGrid Source #

type Direction TriTriGrid Source #

Methods

indices :: TriTriGrid -> [Index TriTriGrid] Source #

distance :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> Int Source #

minDistance :: TriTriGrid -> [Index TriTriGrid] -> Index TriTriGrid -> Int Source #

neighbours :: TriTriGrid -> Index TriTriGrid -> [Index TriTriGrid] Source #

neighboursOfSet :: TriTriGrid -> [Index TriTriGrid] -> [Index TriTriGrid] Source #

neighbour :: TriTriGrid -> Index TriTriGrid -> Direction TriTriGrid -> Maybe (Index TriTriGrid) Source #

numNeighbours :: TriTriGrid -> Index TriTriGrid -> Int Source #

contains :: TriTriGrid -> Index TriTriGrid -> Bool Source #

tileCount :: TriTriGrid -> Int Source #

null :: TriTriGrid -> Bool Source #

nonNull :: TriTriGrid -> Bool Source #

edges :: TriTriGrid -> [(Index TriTriGrid, Index TriTriGrid)] Source #

viewpoint :: TriTriGrid -> Index TriTriGrid -> [(Index TriTriGrid, Int)] Source #

isAdjacent :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> Bool Source #

adjacentTilesToward :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> [Index TriTriGrid] Source #

minimalPaths :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> [[Index TriTriGrid]] Source #

directionTo :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> [Direction TriTriGrid] Source #

defaultMinDistance :: TriTriGrid -> [Index TriTriGrid] -> Index TriTriGrid -> Int Source #

defaultNeighbours :: TriTriGrid -> Index TriTriGrid -> [Index TriTriGrid] Source #

defaultNeighboursOfSet :: TriTriGrid -> [Index TriTriGrid] -> [Index TriTriGrid] Source #

defaultNeighbour :: TriTriGrid -> Index TriTriGrid -> Direction TriTriGrid -> Maybe (Index TriTriGrid) Source #

defaultTileCount :: TriTriGrid -> Int Source #

defaultEdges :: TriTriGrid -> [(Index TriTriGrid, Index TriTriGrid)] Source #

defaultIsAdjacent :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> Bool Source #

defaultAdjacentTilesToward :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> [Index TriTriGrid] Source #

defaultMinimalPaths :: TriTriGrid -> Index TriTriGrid -> Index TriTriGrid -> [[Index TriTriGrid]] Source #

Grid UnboundedTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Methods

indices :: UnboundedTriGrid -> [Index UnboundedTriGrid] Source #

distance :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> Int Source #

minDistance :: UnboundedTriGrid -> [Index UnboundedTriGrid] -> Index UnboundedTriGrid -> Int Source #

neighbours :: UnboundedTriGrid -> Index UnboundedTriGrid -> [Index UnboundedTriGrid] Source #

neighboursOfSet :: UnboundedTriGrid -> [Index UnboundedTriGrid] -> [Index UnboundedTriGrid] Source #

neighbour :: UnboundedTriGrid -> Index UnboundedTriGrid -> Direction UnboundedTriGrid -> Maybe (Index UnboundedTriGrid) Source #

numNeighbours :: UnboundedTriGrid -> Index UnboundedTriGrid -> Int Source #

contains :: UnboundedTriGrid -> Index UnboundedTriGrid -> Bool Source #

tileCount :: UnboundedTriGrid -> Int Source #

null :: UnboundedTriGrid -> Bool Source #

nonNull :: UnboundedTriGrid -> Bool Source #

edges :: UnboundedTriGrid -> [(Index UnboundedTriGrid, Index UnboundedTriGrid)] Source #

viewpoint :: UnboundedTriGrid -> Index UnboundedTriGrid -> [(Index UnboundedTriGrid, Int)] Source #

isAdjacent :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> Bool Source #

adjacentTilesToward :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> [Index UnboundedTriGrid] Source #

minimalPaths :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> [[Index UnboundedTriGrid]] Source #

directionTo :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> [Direction UnboundedTriGrid] Source #

defaultMinDistance :: UnboundedTriGrid -> [Index UnboundedTriGrid] -> Index UnboundedTriGrid -> Int Source #

defaultNeighbours :: UnboundedTriGrid -> Index UnboundedTriGrid -> [Index UnboundedTriGrid] Source #

defaultNeighboursOfSet :: UnboundedTriGrid -> [Index UnboundedTriGrid] -> [Index UnboundedTriGrid] Source #

defaultNeighbour :: UnboundedTriGrid -> Index UnboundedTriGrid -> Direction UnboundedTriGrid -> Maybe (Index UnboundedTriGrid) Source #

defaultTileCount :: UnboundedTriGrid -> Int Source #

defaultEdges :: UnboundedTriGrid -> [(Index UnboundedTriGrid, Index UnboundedTriGrid)] Source #

defaultIsAdjacent :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> Bool Source #

defaultAdjacentTilesToward :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> [Index UnboundedTriGrid] Source #

defaultMinimalPaths :: UnboundedTriGrid -> Index UnboundedTriGrid -> Index UnboundedTriGrid -> [[Index UnboundedTriGrid]] Source #

Grid TorSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

Methods

indices :: TorSquareGrid -> [Index TorSquareGrid] Source #

distance :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> Int Source #

minDistance :: TorSquareGrid -> [Index TorSquareGrid] -> Index TorSquareGrid -> Int Source #

neighbours :: TorSquareGrid -> Index TorSquareGrid -> [Index TorSquareGrid] Source #

neighboursOfSet :: TorSquareGrid -> [Index TorSquareGrid] -> [Index TorSquareGrid] Source #

neighbour :: TorSquareGrid -> Index TorSquareGrid -> Direction TorSquareGrid -> Maybe (Index TorSquareGrid) Source #

numNeighbours :: TorSquareGrid -> Index TorSquareGrid -> Int Source #

contains :: TorSquareGrid -> Index TorSquareGrid -> Bool Source #

tileCount :: TorSquareGrid -> Int Source #

null :: TorSquareGrid -> Bool Source #

nonNull :: TorSquareGrid -> Bool Source #

edges :: TorSquareGrid -> [(Index TorSquareGrid, Index TorSquareGrid)] Source #

viewpoint :: TorSquareGrid -> Index TorSquareGrid -> [(Index TorSquareGrid, Int)] Source #

isAdjacent :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> Bool Source #

adjacentTilesToward :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> [Index TorSquareGrid] Source #

minimalPaths :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> [[Index TorSquareGrid]] Source #

directionTo :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> [Direction TorSquareGrid] Source #

defaultMinDistance :: TorSquareGrid -> [Index TorSquareGrid] -> Index TorSquareGrid -> Int Source #

defaultNeighbours :: TorSquareGrid -> Index TorSquareGrid -> [Index TorSquareGrid] Source #

defaultNeighboursOfSet :: TorSquareGrid -> [Index TorSquareGrid] -> [Index TorSquareGrid] Source #

defaultNeighbour :: TorSquareGrid -> Index TorSquareGrid -> Direction TorSquareGrid -> Maybe (Index TorSquareGrid) Source #

defaultTileCount :: TorSquareGrid -> Int Source #

defaultEdges :: TorSquareGrid -> [(Index TorSquareGrid, Index TorSquareGrid)] Source #

defaultIsAdjacent :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> Bool Source #

defaultAdjacentTilesToward :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> [Index TorSquareGrid] Source #

defaultMinimalPaths :: TorSquareGrid -> Index TorSquareGrid -> Index TorSquareGrid -> [[Index TorSquareGrid]] Source #

Grid RectSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

Methods

indices :: RectSquareGrid -> [Index RectSquareGrid] Source #

distance :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> Int Source #

minDistance :: RectSquareGrid -> [Index RectSquareGrid] -> Index RectSquareGrid -> Int Source #

neighbours :: RectSquareGrid -> Index RectSquareGrid -> [Index RectSquareGrid] Source #

neighboursOfSet :: RectSquareGrid -> [Index RectSquareGrid] -> [Index RectSquareGrid] Source #

neighbour :: RectSquareGrid -> Index RectSquareGrid -> Direction RectSquareGrid -> Maybe (Index RectSquareGrid) Source #

numNeighbours :: RectSquareGrid -> Index RectSquareGrid -> Int Source #

contains :: RectSquareGrid -> Index RectSquareGrid -> Bool Source #

tileCount :: RectSquareGrid -> Int Source #

null :: RectSquareGrid -> Bool Source #

nonNull :: RectSquareGrid -> Bool Source #

edges :: RectSquareGrid -> [(Index RectSquareGrid, Index RectSquareGrid)] Source #

viewpoint :: RectSquareGrid -> Index RectSquareGrid -> [(Index RectSquareGrid, Int)] Source #

isAdjacent :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> Bool Source #

adjacentTilesToward :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> [Index RectSquareGrid] Source #

minimalPaths :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> [[Index RectSquareGrid]] Source #

directionTo :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> [Direction RectSquareGrid] Source #

defaultMinDistance :: RectSquareGrid -> [Index RectSquareGrid] -> Index RectSquareGrid -> Int Source #

defaultNeighbours :: RectSquareGrid -> Index RectSquareGrid -> [Index RectSquareGrid] Source #

defaultNeighboursOfSet :: RectSquareGrid -> [Index RectSquareGrid] -> [Index RectSquareGrid] Source #

defaultNeighbour :: RectSquareGrid -> Index RectSquareGrid -> Direction RectSquareGrid -> Maybe (Index RectSquareGrid) Source #

defaultTileCount :: RectSquareGrid -> Int Source #

defaultEdges :: RectSquareGrid -> [(Index RectSquareGrid, Index RectSquareGrid)] Source #

defaultIsAdjacent :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> Bool Source #

defaultAdjacentTilesToward :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> [Index RectSquareGrid] Source #

defaultMinimalPaths :: RectSquareGrid -> Index RectSquareGrid -> Index RectSquareGrid -> [[Index RectSquareGrid]] Source #

Grid UnboundedSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

Methods

indices :: UnboundedSquareGrid -> [Index UnboundedSquareGrid] Source #

distance :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> Int Source #

minDistance :: UnboundedSquareGrid -> [Index UnboundedSquareGrid] -> Index UnboundedSquareGrid -> Int Source #

neighbours :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> [Index UnboundedSquareGrid] Source #

neighboursOfSet :: UnboundedSquareGrid -> [Index UnboundedSquareGrid] -> [Index UnboundedSquareGrid] Source #

neighbour :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Direction UnboundedSquareGrid -> Maybe (Index UnboundedSquareGrid) Source #

numNeighbours :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Int Source #

contains :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Bool Source #

tileCount :: UnboundedSquareGrid -> Int Source #

null :: UnboundedSquareGrid -> Bool Source #

nonNull :: UnboundedSquareGrid -> Bool Source #

edges :: UnboundedSquareGrid -> [(Index UnboundedSquareGrid, Index UnboundedSquareGrid)] Source #

viewpoint :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> [(Index UnboundedSquareGrid, Int)] Source #

isAdjacent :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> Bool Source #

adjacentTilesToward :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> [Index UnboundedSquareGrid] Source #

minimalPaths :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> [[Index UnboundedSquareGrid]] Source #

directionTo :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> [Direction UnboundedSquareGrid] Source #

defaultMinDistance :: UnboundedSquareGrid -> [Index UnboundedSquareGrid] -> Index UnboundedSquareGrid -> Int Source #

defaultNeighbours :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> [Index UnboundedSquareGrid] Source #

defaultNeighboursOfSet :: UnboundedSquareGrid -> [Index UnboundedSquareGrid] -> [Index UnboundedSquareGrid] Source #

defaultNeighbour :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Direction UnboundedSquareGrid -> Maybe (Index UnboundedSquareGrid) Source #

defaultTileCount :: UnboundedSquareGrid -> Int Source #

defaultEdges :: UnboundedSquareGrid -> [(Index UnboundedSquareGrid, Index UnboundedSquareGrid)] Source #

defaultIsAdjacent :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> Bool Source #

defaultAdjacentTilesToward :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> [Index UnboundedSquareGrid] Source #

defaultMinimalPaths :: UnboundedSquareGrid -> Index UnboundedSquareGrid -> Index UnboundedSquareGrid -> [[Index UnboundedSquareGrid]] Source #

Grid TorOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

Associated Types

type Index TorOctGrid Source #

type Direction TorOctGrid Source #

Methods

indices :: TorOctGrid -> [Index TorOctGrid] Source #

distance :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> Int Source #

minDistance :: TorOctGrid -> [Index TorOctGrid] -> Index TorOctGrid -> Int Source #

neighbours :: TorOctGrid -> Index TorOctGrid -> [Index TorOctGrid] Source #

neighboursOfSet :: TorOctGrid -> [Index TorOctGrid] -> [Index TorOctGrid] Source #

neighbour :: TorOctGrid -> Index TorOctGrid -> Direction TorOctGrid -> Maybe (Index TorOctGrid) Source #

numNeighbours :: TorOctGrid -> Index TorOctGrid -> Int Source #

contains :: TorOctGrid -> Index TorOctGrid -> Bool Source #

tileCount :: TorOctGrid -> Int Source #

null :: TorOctGrid -> Bool Source #

nonNull :: TorOctGrid -> Bool Source #

edges :: TorOctGrid -> [(Index TorOctGrid, Index TorOctGrid)] Source #

viewpoint :: TorOctGrid -> Index TorOctGrid -> [(Index TorOctGrid, Int)] Source #

isAdjacent :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> Bool Source #

adjacentTilesToward :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> [Index TorOctGrid] Source #

minimalPaths :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> [[Index TorOctGrid]] Source #

directionTo :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> [Direction TorOctGrid] Source #

defaultMinDistance :: TorOctGrid -> [Index TorOctGrid] -> Index TorOctGrid -> Int Source #

defaultNeighbours :: TorOctGrid -> Index TorOctGrid -> [Index TorOctGrid] Source #

defaultNeighboursOfSet :: TorOctGrid -> [Index TorOctGrid] -> [Index TorOctGrid] Source #

defaultNeighbour :: TorOctGrid -> Index TorOctGrid -> Direction TorOctGrid -> Maybe (Index TorOctGrid) Source #

defaultTileCount :: TorOctGrid -> Int Source #

defaultEdges :: TorOctGrid -> [(Index TorOctGrid, Index TorOctGrid)] Source #

defaultIsAdjacent :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> Bool Source #

defaultAdjacentTilesToward :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> [Index TorOctGrid] Source #

defaultMinimalPaths :: TorOctGrid -> Index TorOctGrid -> Index TorOctGrid -> [[Index TorOctGrid]] Source #

Grid RectOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

Methods

indices :: RectOctGrid -> [Index RectOctGrid] Source #

distance :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> Int Source #

minDistance :: RectOctGrid -> [Index RectOctGrid] -> Index RectOctGrid -> Int Source #

neighbours :: RectOctGrid -> Index RectOctGrid -> [Index RectOctGrid] Source #

neighboursOfSet :: RectOctGrid -> [Index RectOctGrid] -> [Index RectOctGrid] Source #

neighbour :: RectOctGrid -> Index RectOctGrid -> Direction RectOctGrid -> Maybe (Index RectOctGrid) Source #

numNeighbours :: RectOctGrid -> Index RectOctGrid -> Int Source #

contains :: RectOctGrid -> Index RectOctGrid -> Bool Source #

tileCount :: RectOctGrid -> Int Source #

null :: RectOctGrid -> Bool Source #

nonNull :: RectOctGrid -> Bool Source #

edges :: RectOctGrid -> [(Index RectOctGrid, Index RectOctGrid)] Source #

viewpoint :: RectOctGrid -> Index RectOctGrid -> [(Index RectOctGrid, Int)] Source #

isAdjacent :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> Bool Source #

adjacentTilesToward :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> [Index RectOctGrid] Source #

minimalPaths :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> [[Index RectOctGrid]] Source #

directionTo :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> [Direction RectOctGrid] Source #

defaultMinDistance :: RectOctGrid -> [Index RectOctGrid] -> Index RectOctGrid -> Int Source #

defaultNeighbours :: RectOctGrid -> Index RectOctGrid -> [Index RectOctGrid] Source #

defaultNeighboursOfSet :: RectOctGrid -> [Index RectOctGrid] -> [Index RectOctGrid] Source #

defaultNeighbour :: RectOctGrid -> Index RectOctGrid -> Direction RectOctGrid -> Maybe (Index RectOctGrid) Source #

defaultTileCount :: RectOctGrid -> Int Source #

defaultEdges :: RectOctGrid -> [(Index RectOctGrid, Index RectOctGrid)] Source #

defaultIsAdjacent :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> Bool Source #

defaultAdjacentTilesToward :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> [Index RectOctGrid] Source #

defaultMinimalPaths :: RectOctGrid -> Index RectOctGrid -> Index RectOctGrid -> [[Index RectOctGrid]] Source #

Grid UnboundedOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

Methods

indices :: UnboundedOctGrid -> [Index UnboundedOctGrid] Source #

distance :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> Int Source #

minDistance :: UnboundedOctGrid -> [Index UnboundedOctGrid] -> Index UnboundedOctGrid -> Int Source #

neighbours :: UnboundedOctGrid -> Index UnboundedOctGrid -> [Index UnboundedOctGrid] Source #

neighboursOfSet :: UnboundedOctGrid -> [Index UnboundedOctGrid] -> [Index UnboundedOctGrid] Source #

neighbour :: UnboundedOctGrid -> Index UnboundedOctGrid -> Direction UnboundedOctGrid -> Maybe (Index UnboundedOctGrid) Source #

numNeighbours :: UnboundedOctGrid -> Index UnboundedOctGrid -> Int Source #

contains :: UnboundedOctGrid -> Index UnboundedOctGrid -> Bool Source #

tileCount :: UnboundedOctGrid -> Int Source #

null :: UnboundedOctGrid -> Bool Source #

nonNull :: UnboundedOctGrid -> Bool Source #

edges :: UnboundedOctGrid -> [(Index UnboundedOctGrid, Index UnboundedOctGrid)] Source #

viewpoint :: UnboundedOctGrid -> Index UnboundedOctGrid -> [(Index UnboundedOctGrid, Int)] Source #

isAdjacent :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> Bool Source #

adjacentTilesToward :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> [Index UnboundedOctGrid] Source #

minimalPaths :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> [[Index UnboundedOctGrid]] Source #

directionTo :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> [Direction UnboundedOctGrid] Source #

defaultMinDistance :: UnboundedOctGrid -> [Index UnboundedOctGrid] -> Index UnboundedOctGrid -> Int Source #

defaultNeighbours :: UnboundedOctGrid -> Index UnboundedOctGrid -> [Index UnboundedOctGrid] Source #

defaultNeighboursOfSet :: UnboundedOctGrid -> [Index UnboundedOctGrid] -> [Index UnboundedOctGrid] Source #

defaultNeighbour :: UnboundedOctGrid -> Index UnboundedOctGrid -> Direction UnboundedOctGrid -> Maybe (Index UnboundedOctGrid) Source #

defaultTileCount :: UnboundedOctGrid -> Int Source #

defaultEdges :: UnboundedOctGrid -> [(Index UnboundedOctGrid, Index UnboundedOctGrid)] Source #

defaultIsAdjacent :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> Bool Source #

defaultAdjacentTilesToward :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> [Index UnboundedOctGrid] Source #

defaultMinimalPaths :: UnboundedOctGrid -> Index UnboundedOctGrid -> Index UnboundedOctGrid -> [[Index UnboundedOctGrid]] Source #

Grid RectHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

Methods

indices :: RectHexGrid -> [Index RectHexGrid] Source #

distance :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> Int Source #

minDistance :: RectHexGrid -> [Index RectHexGrid] -> Index RectHexGrid -> Int Source #

neighbours :: RectHexGrid -> Index RectHexGrid -> [Index RectHexGrid] Source #

neighboursOfSet :: RectHexGrid -> [Index RectHexGrid] -> [Index RectHexGrid] Source #

neighbour :: RectHexGrid -> Index RectHexGrid -> Direction RectHexGrid -> Maybe (Index RectHexGrid) Source #

numNeighbours :: RectHexGrid -> Index RectHexGrid -> Int Source #

contains :: RectHexGrid -> Index RectHexGrid -> Bool Source #

tileCount :: RectHexGrid -> Int Source #

null :: RectHexGrid -> Bool Source #

nonNull :: RectHexGrid -> Bool Source #

edges :: RectHexGrid -> [(Index RectHexGrid, Index RectHexGrid)] Source #

viewpoint :: RectHexGrid -> Index RectHexGrid -> [(Index RectHexGrid, Int)] Source #

isAdjacent :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> Bool Source #

adjacentTilesToward :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> [Index RectHexGrid] Source #

minimalPaths :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> [[Index RectHexGrid]] Source #

directionTo :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> [Direction RectHexGrid] Source #

defaultMinDistance :: RectHexGrid -> [Index RectHexGrid] -> Index RectHexGrid -> Int Source #

defaultNeighbours :: RectHexGrid -> Index RectHexGrid -> [Index RectHexGrid] Source #

defaultNeighboursOfSet :: RectHexGrid -> [Index RectHexGrid] -> [Index RectHexGrid] Source #

defaultNeighbour :: RectHexGrid -> Index RectHexGrid -> Direction RectHexGrid -> Maybe (Index RectHexGrid) Source #

defaultTileCount :: RectHexGrid -> Int Source #

defaultEdges :: RectHexGrid -> [(Index RectHexGrid, Index RectHexGrid)] Source #

defaultIsAdjacent :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> Bool Source #

defaultAdjacentTilesToward :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> [Index RectHexGrid] Source #

defaultMinimalPaths :: RectHexGrid -> Index RectHexGrid -> Index RectHexGrid -> [[Index RectHexGrid]] Source #

Grid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

Associated Types

type Index HexHexGrid Source #

type Direction HexHexGrid Source #

Methods

indices :: HexHexGrid -> [Index HexHexGrid] Source #

distance :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Int Source #

minDistance :: HexHexGrid -> [Index HexHexGrid] -> Index HexHexGrid -> Int Source #

neighbours :: HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

neighboursOfSet :: HexHexGrid -> [Index HexHexGrid] -> [Index HexHexGrid] Source #

neighbour :: HexHexGrid -> Index HexHexGrid -> Direction HexHexGrid -> Maybe (Index HexHexGrid) Source #

numNeighbours :: HexHexGrid -> Index HexHexGrid -> Int Source #

contains :: HexHexGrid -> Index HexHexGrid -> Bool Source #

tileCount :: HexHexGrid -> Int Source #

null :: HexHexGrid -> Bool Source #

nonNull :: HexHexGrid -> Bool Source #

edges :: HexHexGrid -> [(Index HexHexGrid, Index HexHexGrid)] Source #

viewpoint :: HexHexGrid -> Index HexHexGrid -> [(Index HexHexGrid, Int)] Source #

isAdjacent :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Bool Source #

adjacentTilesToward :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

minimalPaths :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [[Index HexHexGrid]] Source #

directionTo :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Direction HexHexGrid] Source #

defaultMinDistance :: HexHexGrid -> [Index HexHexGrid] -> Index HexHexGrid -> Int Source #

defaultNeighbours :: HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

defaultNeighboursOfSet :: HexHexGrid -> [Index HexHexGrid] -> [Index HexHexGrid] Source #

defaultNeighbour :: HexHexGrid -> Index HexHexGrid -> Direction HexHexGrid -> Maybe (Index HexHexGrid) Source #

defaultTileCount :: HexHexGrid -> Int Source #

defaultEdges :: HexHexGrid -> [(Index HexHexGrid, Index HexHexGrid)] Source #

defaultIsAdjacent :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Bool Source #

defaultAdjacentTilesToward :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

defaultMinimalPaths :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [[Index HexHexGrid]] Source #

Grid UnboundedHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

Methods

indices :: UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

distance :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Int Source #

minDistance :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> Index UnboundedHexGrid -> Int Source #

neighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

neighboursOfSet :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> [Index UnboundedHexGrid] Source #

neighbour :: UnboundedHexGrid -> Index UnboundedHexGrid -> Direction UnboundedHexGrid -> Maybe (Index UnboundedHexGrid) Source #

numNeighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> Int Source #

contains :: UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

tileCount :: UnboundedHexGrid -> Int Source #

null :: UnboundedHexGrid -> Bool Source #

nonNull :: UnboundedHexGrid -> Bool Source #

edges :: UnboundedHexGrid -> [(Index UnboundedHexGrid, Index UnboundedHexGrid)] Source #

viewpoint :: UnboundedHexGrid -> Index UnboundedHexGrid -> [(Index UnboundedHexGrid, Int)] Source #

isAdjacent :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

adjacentTilesToward :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

minimalPaths :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [[Index UnboundedHexGrid]] Source #

directionTo :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Direction UnboundedHexGrid] Source #

defaultMinDistance :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> Index UnboundedHexGrid -> Int Source #

defaultNeighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

defaultNeighboursOfSet :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> [Index UnboundedHexGrid] Source #

defaultNeighbour :: UnboundedHexGrid -> Index UnboundedHexGrid -> Direction UnboundedHexGrid -> Maybe (Index UnboundedHexGrid) Source #

defaultTileCount :: UnboundedHexGrid -> Int Source #

defaultEdges :: UnboundedHexGrid -> [(Index UnboundedHexGrid, Index UnboundedHexGrid)] Source #

defaultIsAdjacent :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

defaultAdjacentTilesToward :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

defaultMinimalPaths :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [[Index UnboundedHexGrid]] Source #

Grid ParaHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

Methods

indices :: ParaHexGrid -> [Index ParaHexGrid] Source #

distance :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> Int Source #

minDistance :: ParaHexGrid -> [Index ParaHexGrid] -> Index ParaHexGrid -> Int Source #

neighbours :: ParaHexGrid -> Index ParaHexGrid -> [Index ParaHexGrid] Source #

neighboursOfSet :: ParaHexGrid -> [Index ParaHexGrid] -> [Index ParaHexGrid] Source #

neighbour :: ParaHexGrid -> Index ParaHexGrid -> Direction ParaHexGrid -> Maybe (Index ParaHexGrid) Source #

numNeighbours :: ParaHexGrid -> Index ParaHexGrid -> Int Source #

contains :: ParaHexGrid -> Index ParaHexGrid -> Bool Source #

tileCount :: ParaHexGrid -> Int Source #

null :: ParaHexGrid -> Bool Source #

nonNull :: ParaHexGrid -> Bool Source #

edges :: ParaHexGrid -> [(Index ParaHexGrid, Index ParaHexGrid)] Source #

viewpoint :: ParaHexGrid -> Index ParaHexGrid -> [(Index ParaHexGrid, Int)] Source #

isAdjacent :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> Bool Source #

adjacentTilesToward :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> [Index ParaHexGrid] Source #

minimalPaths :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> [[Index ParaHexGrid]] Source #

directionTo :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> [Direction ParaHexGrid] Source #

defaultMinDistance :: ParaHexGrid -> [Index ParaHexGrid] -> Index ParaHexGrid -> Int Source #

defaultNeighbours :: ParaHexGrid -> Index ParaHexGrid -> [Index ParaHexGrid] Source #

defaultNeighboursOfSet :: ParaHexGrid -> [Index ParaHexGrid] -> [Index ParaHexGrid] Source #

defaultNeighbour :: ParaHexGrid -> Index ParaHexGrid -> Direction ParaHexGrid -> Maybe (Index ParaHexGrid) Source #

defaultTileCount :: ParaHexGrid -> Int Source #

defaultEdges :: ParaHexGrid -> [(Index ParaHexGrid, Index ParaHexGrid)] Source #

defaultIsAdjacent :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> Bool Source #

defaultAdjacentTilesToward :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> [Index ParaHexGrid] Source #

defaultMinimalPaths :: ParaHexGrid -> Index ParaHexGrid -> Index ParaHexGrid -> [[Index ParaHexGrid]] Source #

Grid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

Associated Types

type Index HexHexGrid Source #

type Direction HexHexGrid Source #

Methods

indices :: HexHexGrid -> [Index HexHexGrid] Source #

distance :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Int Source #

minDistance :: HexHexGrid -> [Index HexHexGrid] -> Index HexHexGrid -> Int Source #

neighbours :: HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

neighboursOfSet :: HexHexGrid -> [Index HexHexGrid] -> [Index HexHexGrid] Source #

neighbour :: HexHexGrid -> Index HexHexGrid -> Direction HexHexGrid -> Maybe (Index HexHexGrid) Source #

numNeighbours :: HexHexGrid -> Index HexHexGrid -> Int Source #

contains :: HexHexGrid -> Index HexHexGrid -> Bool Source #

tileCount :: HexHexGrid -> Int Source #

null :: HexHexGrid -> Bool Source #

nonNull :: HexHexGrid -> Bool Source #

edges :: HexHexGrid -> [(Index HexHexGrid, Index HexHexGrid)] Source #

viewpoint :: HexHexGrid -> Index HexHexGrid -> [(Index HexHexGrid, Int)] Source #

isAdjacent :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Bool Source #

adjacentTilesToward :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

minimalPaths :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [[Index HexHexGrid]] Source #

directionTo :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Direction HexHexGrid] Source #

defaultMinDistance :: HexHexGrid -> [Index HexHexGrid] -> Index HexHexGrid -> Int Source #

defaultNeighbours :: HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

defaultNeighboursOfSet :: HexHexGrid -> [Index HexHexGrid] -> [Index HexHexGrid] Source #

defaultNeighbour :: HexHexGrid -> Index HexHexGrid -> Direction HexHexGrid -> Maybe (Index HexHexGrid) Source #

defaultTileCount :: HexHexGrid -> Int Source #

defaultEdges :: HexHexGrid -> [(Index HexHexGrid, Index HexHexGrid)] Source #

defaultIsAdjacent :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> Bool Source #

defaultAdjacentTilesToward :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [Index HexHexGrid] Source #

defaultMinimalPaths :: HexHexGrid -> Index HexHexGrid -> Index HexHexGrid -> [[Index HexHexGrid]] Source #

Grid UnboundedHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

Methods

indices :: UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

distance :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Int Source #

minDistance :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> Index UnboundedHexGrid -> Int Source #

neighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

neighboursOfSet :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> [Index UnboundedHexGrid] Source #

neighbour :: UnboundedHexGrid -> Index UnboundedHexGrid -> Direction UnboundedHexGrid -> Maybe (Index UnboundedHexGrid) Source #

numNeighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> Int Source #

contains :: UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

tileCount :: UnboundedHexGrid -> Int Source #

null :: UnboundedHexGrid -> Bool Source #

nonNull :: UnboundedHexGrid -> Bool Source #

edges :: UnboundedHexGrid -> [(Index UnboundedHexGrid, Index UnboundedHexGrid)] Source #

viewpoint :: UnboundedHexGrid -> Index UnboundedHexGrid -> [(Index UnboundedHexGrid, Int)] Source #

isAdjacent :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

adjacentTilesToward :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

minimalPaths :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [[Index UnboundedHexGrid]] Source #

directionTo :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Direction UnboundedHexGrid] Source #

defaultMinDistance :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> Index UnboundedHexGrid -> Int Source #

defaultNeighbours :: UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

defaultNeighboursOfSet :: UnboundedHexGrid -> [Index UnboundedHexGrid] -> [Index UnboundedHexGrid] Source #

defaultNeighbour :: UnboundedHexGrid -> Index UnboundedHexGrid -> Direction UnboundedHexGrid -> Maybe (Index UnboundedHexGrid) Source #

defaultTileCount :: UnboundedHexGrid -> Int Source #

defaultEdges :: UnboundedHexGrid -> [(Index UnboundedHexGrid, Index UnboundedHexGrid)] Source #

defaultIsAdjacent :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> Bool Source #

defaultAdjacentTilesToward :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [Index UnboundedHexGrid] Source #

defaultMinimalPaths :: UnboundedHexGrid -> Index UnboundedHexGrid -> Index UnboundedHexGrid -> [[Index UnboundedHexGrid]] Source #

Grid g => Grid (LGridMap g v) Source # 
Instance details

Defined in Math.Geometry.GridMap.Lazy

Associated Types

type Index (LGridMap g v) Source #

type Direction (LGridMap g v) Source #

Methods

indices :: LGridMap g v -> [Index (LGridMap g v)] Source #

distance :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> Int Source #

minDistance :: LGridMap g v -> [Index (LGridMap g v)] -> Index (LGridMap g v) -> Int Source #

neighbours :: LGridMap g v -> Index (LGridMap g v) -> [Index (LGridMap g v)] Source #

neighboursOfSet :: LGridMap g v -> [Index (LGridMap g v)] -> [Index (LGridMap g v)] Source #

neighbour :: LGridMap g v -> Index (LGridMap g v) -> Direction (LGridMap g v) -> Maybe (Index (LGridMap g v)) Source #

numNeighbours :: LGridMap g v -> Index (LGridMap g v) -> Int Source #

contains :: LGridMap g v -> Index (LGridMap g v) -> Bool Source #

tileCount :: LGridMap g v -> Int Source #

null :: LGridMap g v -> Bool Source #

nonNull :: LGridMap g v -> Bool Source #

edges :: LGridMap g v -> [(Index (LGridMap g v), Index (LGridMap g v))] Source #

viewpoint :: LGridMap g v -> Index (LGridMap g v) -> [(Index (LGridMap g v), Int)] Source #

isAdjacent :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> Bool Source #

adjacentTilesToward :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> [Index (LGridMap g v)] Source #

minimalPaths :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> [[Index (LGridMap g v)]] Source #

directionTo :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> [Direction (LGridMap g v)] Source #

defaultMinDistance :: LGridMap g v -> [Index (LGridMap g v)] -> Index (LGridMap g v) -> Int Source #

defaultNeighbours :: LGridMap g v -> Index (LGridMap g v) -> [Index (LGridMap g v)] Source #

defaultNeighboursOfSet :: LGridMap g v -> [Index (LGridMap g v)] -> [Index (LGridMap g v)] Source #

defaultNeighbour :: LGridMap g v -> Index (LGridMap g v) -> Direction (LGridMap g v) -> Maybe (Index (LGridMap g v)) Source #

defaultTileCount :: LGridMap g v -> Int Source #

defaultEdges :: LGridMap g v -> [(Index (LGridMap g v), Index (LGridMap g v))] Source #

defaultIsAdjacent :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> Bool Source #

defaultAdjacentTilesToward :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> [Index (LGridMap g v)] Source #

defaultMinimalPaths :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) -> [[Index (LGridMap g v)]] Source #

class Grid g => FiniteGrid g where Source #

A regular arrangement of tiles where the number of tiles is finite. Minimal complete definition: size, maxPossibleDistance.

Associated Types

type Size g Source #

Methods

size :: g -> Size g Source #

Returns the dimensions of the grid. For example, if g is a 4x3 rectangular grid, size g would return (4, 3), while tileCount g would return 12.

maxPossibleDistance :: g -> Int Source #

Returns the largest possible distance between two tiles in the grid.

Instances

Instances details
FiniteGrid XCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size XCylTriGrid Source #

FiniteGrid YCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size YCylTriGrid Source #

FiniteGrid TorTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size TorTriGrid Source #

FiniteGrid RectTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size RectTriGrid Source #

FiniteGrid ParaTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size ParaTriGrid Source #

FiniteGrid TriTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

Associated Types

type Size TriTriGrid Source #

FiniteGrid TorSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

Associated Types

type Size TorSquareGrid Source #

FiniteGrid RectSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

Associated Types

type Size RectSquareGrid Source #

FiniteGrid TorOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

Associated Types

type Size TorOctGrid Source #

FiniteGrid RectOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

Associated Types

type Size RectOctGrid Source #

FiniteGrid RectHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

Associated Types

type Size RectHexGrid Source #

FiniteGrid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

Associated Types

type Size HexHexGrid Source #

FiniteGrid ParaHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

Associated Types

type Size ParaHexGrid Source #

FiniteGrid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

Associated Types

type Size HexHexGrid Source #

FiniteGrid g => FiniteGrid (LGridMap g v) Source # 
Instance details

Defined in Math.Geometry.GridMap.Lazy

Associated Types

type Size (LGridMap g v) Source #

class Grid g => BoundedGrid g where Source #

A regular arrangement of tiles with an edge. Minimal complete definition: tileSideCount.

Minimal complete definition

tileSideCount

Methods

tileSideCount :: g -> Int Source #

Returns the number of sides a tile has

boundary :: Eq (Index g) => g -> [Index g] Source #

Returns a the indices of all the tiles at the boundary of a grid.

isBoundary :: Eq (Index g) => g -> Index g -> Bool Source #

isBoundary g a' returns True if the tile with index a is on a boundary of g, False otherwise. (Corner tiles are also boundary tiles.)

centre :: Eq (Index g) => g -> [Index g] Source #

Returns the index of the tile(s) that require the maximum number of moves to reach the nearest boundary tile. A grid may have more than one central tile (e.g., a rectangular grid with an even number of rows and columns will have four central tiles).

isCentre :: Eq (Index g) => g -> Index g -> Bool Source #

isCentre g a' returns True if the tile with index a is a centre tile of g, False otherwise.

defaultBoundary :: Eq (Index g) => g -> [Index g] Source #

defaultIsBoundary :: Eq (Index g) => g -> Index g -> Bool Source #

defaultCentre :: Eq (Index g) => g -> [Index g] Source #

defaultIsCentre :: Eq (Index g) => g -> Index g -> Bool Source #

Instances

Instances details
BoundedGrid RectTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

BoundedGrid ParaTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

BoundedGrid TriTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

BoundedGrid RectSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

BoundedGrid RectOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

BoundedGrid RectHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

BoundedGrid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal2

BoundedGrid ParaHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

BoundedGrid HexHexGrid Source # 
Instance details

Defined in Math.Geometry.Grid.HexagonalInternal

BoundedGrid g => BoundedGrid (LGridMap g v) Source # 
Instance details

Defined in Math.Geometry.GridMap.Lazy

class Grid g => WrappedGrid g where Source #

A regular arrangement of tiles where the boundaries are joined. Minimal complete definition: normalise and denormalise.

Methods

normalise :: g -> Index g -> Index g Source #

normalise g a returns the "normal" indices for a. TODO: need a clearer description and an illustration.

denormalise :: g -> Index g -> [Index g] Source #

denormalise g a returns all of the indices in a's translation group. In other words, it returns a plus the indices obtained by translating a in each direction by the extent of the grid along that direction. TODO: need a clearer description and an illustration.

Instances

Instances details
WrappedGrid XCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

WrappedGrid YCylTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

WrappedGrid TorTriGrid Source # 
Instance details

Defined in Math.Geometry.Grid.TriangularInternal

WrappedGrid TorSquareGrid Source # 
Instance details

Defined in Math.Geometry.Grid.SquareInternal

WrappedGrid TorOctGrid Source # 
Instance details

Defined in Math.Geometry.Grid.OctagonalInternal

WrappedGrid g => WrappedGrid (LGridMap g v) Source # 
Instance details

Defined in Math.Geometry.GridMap.Lazy

Methods

normalise :: LGridMap g v -> Index (LGridMap g v) -> Index (LGridMap g v) Source #

denormalise :: LGridMap g v -> Index (LGridMap g v) -> [Index (LGridMap g v)] Source #

neighboursBasedOn :: (Eq (Index u), Grid g, Grid u, Index g ~ Index u) => u -> g -> Index g -> [Index g] Source #

distanceBasedOn :: (Eq (Index g), Grid g, Grid u, Index g ~ Index u) => u -> g -> Index g -> Index g -> Int Source #

directionToBasedOn :: (Eq (Index g), Eq (Direction g), Grid g, Grid u, Index g ~ Index u, Direction g ~ Direction u) => u -> g -> Index g -> Index g -> [Direction g] Source #

neighboursWrappedBasedOn :: (Eq (Index g), WrappedGrid g, Grid u, Index g ~ Index u) => u -> g -> Index g -> [Index g] Source #

neighbourWrappedBasedOn :: (Eq (Index g), Eq (Direction g), WrappedGrid g, Grid u, Index g ~ Index u, Direction g ~ Direction u) => u -> g -> Index g -> Direction g -> Maybe (Index g) Source #

distanceWrappedBasedOn :: (Eq (Index g), WrappedGrid g, Grid u, Index g ~ Index u) => u -> g -> Index g -> Index g -> Int Source #

directionToWrappedBasedOn :: (Eq (Index g), Eq (Direction g), WrappedGrid g, Grid u, Index g ~ Index u, Direction g ~ Direction u) => u -> g -> Index g -> Index g -> [Direction g] Source #

sameEdge :: Eq t => (t, t) -> (t, t) -> Bool Source #

adjacentEdges :: (Grid g, Eq (Index g)) => Index g -> g -> [(Index g, Index g)] Source #

cartesianIndices :: (Enum r, Enum c, Num r, Num c, Ord r, Ord c) => (r, c) -> [(c, r)] Source #