-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A port of asciimoo's drawille to haskell
--   
--   A tiny library for drawing with braille.
@package drawille
@version 0.1.2.0


-- | This module enables using UTF-8 braille characters to render drawings
--   onto the console.
module System.Drawille

-- | The Canvas type. Represents a canvas, mapping points to their braille
--   "px" codes.
type Canvas = Map (Int, Int) Int

-- | The empty canvas, to be drawn upon.
empty :: Canvas

-- | Pretty prints a canvas as a <a>String</a>, ready to be printed.
frame :: Canvas -> String

-- | Gets the current state for a coordinate in a canvas.
get :: Canvas -> (Int, Int) -> Bool

-- | Sets a coordinate in a canvas.
set :: Canvas -> (Int, Int) -> Canvas

-- | Unsets a coordinate in a canvas.
unset :: Canvas -> (Int, Int) -> Canvas

-- | Toggles the state of a coordinate in a canvas
toggle :: Canvas -> (Int, Int) -> Canvas

-- | Creates a canvas from a List of coordinates
fromList :: [(Int, Int)] -> Canvas

-- | Helper to convert a coordinate to its corespondent in the bigger
--   braille grid's size
toPs :: (Int, Int) -> (Int, Int)

-- | Converts a coordinate into its local braille "px" code, using the
--   <a>pxMap</a>.
toPx :: (Int, Int) -> Int

-- | A mapping between local coordinates, inside of a single cell, and each
--   of the braille characters they correspond to (with an offset).
pxMap :: Num a => [[a]]

-- | The offset between the values in the <a>pxMap</a>, which have nice
--   binary properties between each other, and the actual braille character
--   codes.
pxOff :: Num a => a
