The CellGrid package provides a type for representing a rectangular grid of cells. CellGrids can be created, transformed, and rendered as either SVG or HTML.
A cell can be in the interior of the grid, on an edge, on in a cornder
CellRenderer is a record that provides the information -- cellSize, defaultColor, and the function cellColorizer -- that are needed to render a cell to SVG.
Construct a Maybe CellGrid from a list of values of type a.
If the length of the list is incompatible with the
given number of rows and columns Nothing is returned.
> cg = cellGridFromList 2 2 [1.0,2.0,3.0,4.0]
Just (CellGrid (2,2) (Array.fromList [1,2,3,4]))
: Maybe (CellGrid Float)
> cellGridFromList 2 2 [1.0,2.0,3.0,4.0, 5.0]
Nothing : Maybe (CellGrid Float)The empty cell grid. Useful in conjunction with Maybe.withDefault
Render a cell grid as Html
Render a cell grid as SVG
Transform a CellGrid a with a function ((Int, Int) -> a -> a). Used when the transformed value depends on its matrixIndex as well as its value
Transform a CellGrid using a function
(Int, Int) -> CellGrid a -> a)return the type of the cell at location (i,j). Thus classifyCell grid (0,0) = Corner
Return the Maybe value of the cell at (i,j) from grid
> cellAtMatrixIndex (1,1) cg
Just 4 : Maybe Float
A value of type
CellGrid ais a rectangular array of values of type a.