wumpus-basic-0.9.0: Common drawing utilities built on wumpus-core.

PortabilityGHC
Stabilityunstable
Maintainerstephen.tetley@gmail.com

Wumpus.Basic.Graphic.BaseClasses

Description

Base classes and type families.

Drawing is always built on TraceM and DrawingCtxM, it may use PointSupplyM for chains or turtle drawing.

Synopsis

Documentation

type family MonUnit m :: *Source

class Monad m => TraceM m whereSource

Collect elementary graphics as part of a larger drawing.

TraceM works much like a writer monad.

Methods

trace :: HPrim (MonUnit m) -> m ()Source

Instances

TraceM (Drawing u) 
Monad m => TraceM (DrawingT u m) 
(u ~ MonUnit m, Monad m, TraceM m) => TraceM (TurtleT u m) 
(u ~ MonUnit m, Monad m, TraceM m) => TraceM (ScalingT ux uy u m) 

asksCtx :: DrawingCtxM m => (DrawingContext -> a) -> m aSource

Project a value out of a context.

class ScalingM m whereSource

Scaling...

Associated Types

type XDim m :: *Source

type YDim m :: *Source

Methods

scaleX :: (u ~ MonUnit m, ux ~ XDim m) => ux -> m uSource

scaleY :: (u ~ MonUnit m, uy ~ YDim m) => uy -> m uSource

scalePt :: (u ~ MonUnit m, ux ~ XDim m, uy ~ YDim m) => ux -> uy -> m (Point2 u)Source

scaleVec :: (u ~ MonUnit m, ux ~ XDim m, uy ~ YDim m) => ux -> uy -> m (Vec2 u)Source

Instances

ScalingM (Scaling ux uy u) 
Monad m => ScalingM (ScalingT ux uy u m) 

class Monad m => PointSupplyM m whereSource

A monad that supplies points, e.g. a turtle monad.

Methods

position :: u ~ MonUnit m => m (Point2 u)Source

Instances

(u ~ MonUnit m, Monad m, Num u) => PointSupplyM (TurtleT u m)