algebra-driven-design-0.1.1.1: Companion library for the book Algebra-Driven Design by Sandy Maguire

Safe HaskellNone
LanguageHaskell2010

Tiles.Efficient

Contents

Synopsis

Observations

rasterize Source #

Arguments

:: Int

resulting width

-> Int

resulting heigeht

-> Tile a 
-> [[a]]

the resulting "pixels" in row-major order

Rasterize a Tile down into a row-major representation of its constituent "pixels".

sample :: Tile a -> Double -> Double -> a Source #

Generic constructors

cw :: Tile a -> Tile a Source #

ccw :: Tile a -> Tile a Source #

beside :: Tile a -> Tile a -> Tile a Source #

cols :: Monoid a => [Tile a] -> Tile a Source #

above :: Tile a -> Tile a -> Tile a Source #

rows :: Monoid a => [Tile a] -> Tile a Source #

flipH :: Tile a -> Tile a Source #

flipV :: Tile a -> Tile a Source #

quad :: Tile a -> Tile a -> Tile a -> Tile a -> Tile a Source #

swirl :: Tile a -> Tile a Source #

Color constructors

Special color constructors

Color operations

Types

data Tile a Source #

Instances
Monad Tile Source # 
Instance details

Defined in Tiles.Efficient

Methods

(>>=) :: Tile a -> (a -> Tile b) -> Tile b #

(>>) :: Tile a -> Tile b -> Tile b #

return :: a -> Tile a #

fail :: String -> Tile a #

Functor Tile Source # 
Instance details

Defined in Tiles.Efficient

Methods

fmap :: (a -> b) -> Tile a -> Tile b #

(<$) :: a -> Tile b -> Tile a #

Applicative Tile Source # 
Instance details

Defined in Tiles.Efficient

Methods

pure :: a -> Tile a #

(<*>) :: Tile (a -> b) -> Tile a -> Tile b #

liftA2 :: (a -> b -> c) -> Tile a -> Tile b -> Tile c #

(*>) :: Tile a -> Tile b -> Tile b #

(<*) :: Tile a -> Tile b -> Tile a #

Show (Tile t) Source # 
Instance details

Defined in Tiles.Efficient

Methods

showsPrec :: Int -> Tile t -> ShowS #

show :: Tile t -> String #

showList :: [Tile t] -> ShowS #

Semigroup a => Semigroup (Tile a) Source # 
Instance details

Defined in Tiles.Efficient

Methods

(<>) :: Tile a -> Tile a -> Tile a #

sconcat :: NonEmpty (Tile a) -> Tile a #

stimes :: Integral b => b -> Tile a -> Tile a #

Monoid a => Monoid (Tile a) Source # 
Instance details

Defined in Tiles.Efficient

Methods

mempty :: Tile a #

mappend :: Tile a -> Tile a -> Tile a #

mconcat :: [Tile a] -> Tile a #

(CoArbitrary a, Arbitrary a) => Arbitrary (Tile a) Source # 
Instance details

Defined in Tiles.Efficient

Methods

arbitrary :: Gen (Tile a) #

shrink :: Tile a -> [Tile a] #

pattern Color :: Double -> Double -> Double -> Double -> Color Source #

Orphan instances

Semigroup Color Source # 
Instance details

Methods

(<>) :: Color -> Color -> Color #

sconcat :: NonEmpty Color -> Color #

stimes :: Integral b => b -> Color -> Color #

Monoid Color Source # 
Instance details

Methods

mempty :: Color #

mappend :: Color -> Color -> Color #

mconcat :: [Color] -> Color #

Arbitrary PixelRGBA8 Source # 
Instance details

CoArbitrary PixelRGBA8 Source # 
Instance details

Methods

coarbitrary :: PixelRGBA8 -> Gen b -> Gen b #