Portability | GHC |
---|---|
Stability | unstable |
Maintainer | stephen.tetley@gmail.com |
Drawing with trace - a Writer like monad collecting intermediate graphics - and drawing context - a reader monad of attributes - font_face, fill_colour etc.
- data TraceDrawing u a
- type DTraceDrawing a = TraceDrawing Double a
- data TraceDrawingT u m a
- type DTraceDrawingT m a = TraceDrawingT Double m a
- runTraceDrawing :: DrawingContext -> TraceDrawing u a -> (a, HPrim u)
- execTraceDrawing :: DrawingContext -> TraceDrawing u a -> HPrim u
- evalTraceDrawing :: DrawingContext -> TraceDrawing u a -> a
- runTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m (a, HPrim u)
- execTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m (HPrim u)
- evalTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m a
- liftToPictureU :: (Real u, Floating u, FromPtSize u) => HPrim u -> Picture u
- liftToPictureMb :: (Real u, Floating u, FromPtSize u) => HPrim u -> Maybe (Picture u)
- mbPictureU :: (Real u, Floating u, FromPtSize u) => Maybe (Picture u) -> Picture u
- query :: DrawingCtxM m => CF a -> m a
- draw :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => Graphic u -> m ()
- xdraw :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => XLink -> Graphic u -> m ()
- drawi :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => Image u a -> m a
- drawi_ :: (TraceM m, DrawingCtxM m, MonUnit m ~ u) => Image u a -> m ()
- xdrawi :: (TraceM m, DrawingCtxM m, MonUnit m ~ u) => XLink -> Image u a -> m a
- xdrawi_ :: (TraceM m, DrawingCtxM m, MonUnit m ~ u) => XLink -> Image u a -> m ()
- node :: (TraceM m, DrawingCtxM m, PointSupplyM m, MonUnit m ~ u) => LocGraphic u -> m ()
- nodei :: (TraceM m, DrawingCtxM m, PointSupplyM m, MonUnit m ~ u) => LocImage u a -> m a
Documentation
data TraceDrawing u a Source
Monad (TraceDrawing u) | |
Functor (TraceDrawing u) | |
Applicative (TraceDrawing u) | |
DrawingCtxM (TraceDrawing u) | |
TraceM (TraceDrawing u) |
type DTraceDrawing a = TraceDrawing Double aSource
data TraceDrawingT u m a Source
Monad m => Monad (TraceDrawingT u m) | |
Monad m => Functor (TraceDrawingT u m) | |
Monad m => Applicative (TraceDrawingT u m) | |
Monad m => DrawingCtxM (TraceDrawingT u m) | |
Monad m => TraceM (TraceDrawingT u m) |
type DTraceDrawingT m a = TraceDrawingT Double m aSource
runTraceDrawing :: DrawingContext -> TraceDrawing u a -> (a, HPrim u)Source
execTraceDrawing :: DrawingContext -> TraceDrawing u a -> HPrim uSource
Run the drawing returning only the output it produces, drop any answer from the monadic computation.
evalTraceDrawing :: DrawingContext -> TraceDrawing u a -> aSource
Run the drawing ignoring the output it produces, return the answer from the monadic computation.
Note - this useful for testing, generally one would want the opposite behaviour (return the drawing, ignore than the answer).
runTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m (a, HPrim u)Source
execTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m (HPrim u)Source
evalTraceDrawingT :: Monad m => DrawingContext -> TraceDrawingT u m a -> m aSource
liftToPictureU :: (Real u, Floating u, FromPtSize u) => HPrim u -> Picture uSource
Unsafe promotion of HPrim
to Picture
.
If the HPrim is empty, a run-time error is thrown.
liftToPictureMb :: (Real u, Floating u, FromPtSize u) => HPrim u -> Maybe (Picture u)Source
Safe promotion of HPrim
to (Maybe Picture)
.
If the HPrim is empty, then Nothing
is returned.
mbPictureU :: (Real u, Floating u, FromPtSize u) => Maybe (Picture u) -> Picture uSource
Unsafe promotion of (Maybe Picture)
to Picture
.
This is equivalent to:
fromMaybe (error "empty") $ pic
This function is solely a convenience, using it saves one import and a few characters.
If the supplied value is Nothing
a run-time error is thrown.
query :: DrawingCtxM m => CF a -> m aSource
draw :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => Graphic u -> m ()Source
Draw a Graphic taking the drawing style from the drawing context.
This operation is analogeous to tell
in a Writer monad.
xdraw :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => XLink -> Graphic u -> m ()Source
Hyperlink version of draw
.
drawi :: (TraceM m, DrawingCtxM m, u ~ MonUnit m) => Image u a -> m aSource
Draw an Image taking the drawing style from the drawing context.
The graphic representation of the Image is drawn in the Trace monad, and the result is returned.
xdrawi :: (TraceM m, DrawingCtxM m, MonUnit m ~ u) => XLink -> Image u a -> m aSource
Hyperlink version of drawi
.
xdrawi_ :: (TraceM m, DrawingCtxM m, MonUnit m ~ u) => XLink -> Image u a -> m ()Source
Forgetful xdrawi
.
node :: (TraceM m, DrawingCtxM m, PointSupplyM m, MonUnit m ~ u) => LocGraphic u -> m ()Source
nodei :: (TraceM m, DrawingCtxM m, PointSupplyM m, MonUnit m ~ u) => LocImage u a -> m aSource