| Portability | ghc |
|---|---|
| Stability | unstable |
| Maintainer | Andy Gill <andygill@ku.edu> |
Graphics.Chalkboard.Board
Contents
Description
Boards are the principal type for our images. The are conceptually functions from 2D coordinates to values, typically a color.
Common Boards include
-
Board Bool-- A maskingBoard, or region. -
Board RGB--Color Board -
Board (Alpha RGB)-- AColor Boardwith alpha (transparency) values. -
Board (Maybe a)-- ABoardwith binary transparency. -
Board (Maybe Color)-- AColor Boardwith binary transparency. -
Board Point-- ABoard(or field) ofPointvalues.
- data Board a
- lookup :: Board a -> (R, R) -> a
- coord :: Board Point
- maskFor :: (Point, Point) -> Board Bool
- circularMaskFor :: Point -> R -> Board Bool
- scale :: Scale c => R -> c -> c
- scaleXY :: (R, R) -> Board a -> Board a
- move :: (R, R) -> Board a -> Board a
- rotate :: Radian -> Board a -> Board a
- crop :: Board Bool -> Board a -> Board (Maybe a)
- class Functor f => Applicative f where
The Board datatype
'''Board''' is our primary data type, an infinite flat surface (or R2 field) of values.
Conceptually, Board a = Point -> a.
looking up a point on the Board.
Creating Boards.
circularMaskFor :: Point -> R -> Board BoolSource
build a circular mask or region, with a circle of radius R, and center Point.
Translations on a Board.
scaleXY :: (R, R) -> Board a -> Board aSource
A non-overloaded version of scale which takes a independent x and y coordinate.
class Functor f => Applicative f where
A functor with application.
Instances should satisfy the following laws:
- identity
-
pureid<*>v = v - composition
-
pure(.)<*>u<*>v<*>w = u<*>(v<*>w) - homomorphism
-
puref<*>purex =pure(f x) - interchange
-
u<*>purey =pure($y)<*>u - ignore left value
-
u*>v =pure(constid)<*>u<*>v - ignore right value
-
u<*v =pureconst<*>u<*>v
The Functor instance should satisfy
fmap f x = pure f <*> x
Methods
pure :: a -> f a
Lift a value.
(<*>) :: f (a -> b) -> f a -> f b
Sequential application.
(*>) :: f a -> f b -> f b
Sequence actions, discarding the value of the first argument.
(<*) :: f a -> f b -> f a
Sequence actions, discarding the value of the second argument.
Instances
| Applicative [] | |
| Applicative IO | |
| Applicative ZipList | |
| Applicative Maybe | |
| Applicative Board | |
| Applicative ((->) a) | |
| Monoid a => Applicative ((,) a) | |
| Monoid m => Applicative (Const m) | |
| Monad m => Applicative (WrappedMonad m) | |
| Arrow a => Applicative (WrappedArrow a b) |