Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | stephen.tetley@gmail.com |
Wumpus.Basic.Kernel.Base.BaseDefs
Contents
Description
The elementary base types and classes.
- data UNil u = UNil
- ureturn :: Monad m => m (UNil u)
- uvoid :: Monad m => m a -> m (UNil u)
- class ScalarUnit a where
- fromPsPoint :: Double -> a
- toPsPoint :: a -> Double
- class Num u => InterpretUnit u where
- dinterpF :: (Functor t, InterpretUnit u) => FontSize -> t Double -> t u
- normalizeF :: (Functor t, InterpretUnit u) => FontSize -> t u -> t Double
- uconvert1 :: (InterpretUnit u, InterpretUnit u1) => FontSize -> u -> u1
- uconvertF :: (Functor t, InterpretUnit u, InterpretUnit u1) => FontSize -> t u -> t u1
- intraMapPoint :: InterpretUnit u => FontSize -> (DPoint2 -> DPoint2) -> Point2 u -> Point2 u
- intraMapFunctor :: (Functor f, InterpretUnit u) => FontSize -> (f Double -> f Double) -> f u -> f u
- type KernChar u = (u, EscapedChar)
- data DrawStyle
- = FILL
- | STROKE
- | FILL_STROKE
- data ZDeco
- data HAlign
- data VAlign
- data TextHeight
- data Cardinal
- = NORTH
- | NORTH_EAST
- | EAST
- | SOUTH_EAST
- | SOUTH
- | SOUTH_WEST
- | WEST
- | NORTH_WEST
- data Direction
- vsum :: Num u => [Vec2 u] -> Vec2 u
- both :: Applicative f => f a -> f b -> f (a, b)
Unit phantom type
The empty data type - i.e. ()
- wrapped with a phantom unit
parameter.
Constructors
UNil |
ureturn :: Monad m => m (UNil u)Source
Return a UNil
rather than ()
at the end of sequence of
monadic commands.
Many Wumpus objects are usefully constructed in the
do-notation
, but because Wumpus has to expose the type of
the unit
to the type checker we must finish the do-block
with:
ureturn
or:
return UNil
rather than:
return ()
Non-contextual unit conversion.
class ScalarUnit a whereSource
Instances
Unit interpretation with respect to the current Point size
class Num u => InterpretUnit u whereSource
dinterpF :: (Functor t, InterpretUnit u) => FontSize -> t Double -> t uSource
dinterp
an object that gives access to its unit at the
functor position.
normalizeF :: (Functor t, InterpretUnit u) => FontSize -> t u -> t DoubleSource
normalize
an object that gives access to its unit at the
functor position.
uconvert1 :: (InterpretUnit u, InterpretUnit u1) => FontSize -> u -> u1Source
Convert a scalar value from one unit to another.
uconvertF :: (Functor t, InterpretUnit u, InterpretUnit u1) => FontSize -> t u -> t u1Source
Unit convert an object that gives access to its unit at the Functor position.
In practive this will be *all* Image answers.
intraMapPoint :: InterpretUnit u => FontSize -> (DPoint2 -> DPoint2) -> Point2 u -> Point2 uSource
intraMapFunctor :: (Functor f, InterpretUnit u) => FontSize -> (f Double -> f Double) -> f u -> f uSource
KernChar
type KernChar u = (u, EscapedChar)Source
Unit parametric version of KerningChar from Wumpus-Core.
Drawing paths
Draw closed paths.
FILL
STROKE
FILL_STROKE - the path is filled and its edge is stroked.
Constructors
FILL | |
STROKE | |
FILL_STROKE |
Drawing layer
Decorating with resepct to the Z-order
SUPERIOR - in front.
ANTERIOR - behind.
Alignment
Horizontal alignment - align to the top, center or bottom.
Constructors
HALIGN_TOP | |
HALIGN_CENTER | |
HALIGN_BASE |
Vertical alignment - align to the left, center or bottom.
Constructors
VALIGN_LEFT | |
VALIGN_CENTER | |
VALIGN_RIGHT |
Text height
data TextHeight Source
Wumpus distinguishes two use-cases for displaying vertically centered text.
Arbitrary text that is expected to contain lower case letters with descenders, show take the vertical center as the mid-point between the cap height and the descender depth.
Unfortunately, including the descender depth can produce unbalanced results for text which is not expected to have descenders (e.g. numbers within a bordered box), visually this makes the center too high.
Constructors
JUST_CAP_HEIGHT | |
CAP_HEIGHT_PLUS_DESCENDER |
Instances
Cardinal (compass) positions
An enumeratied type representing the compass positions.
Constructors
NORTH | |
NORTH_EAST | |
EAST | |
SOUTH_EAST | |
SOUTH | |
SOUTH_WEST | |
WEST | |
NORTH_WEST |
Direction enumeration
An enumerated type representing horizontal and vertical directions.
Misc
vsum :: Num u => [Vec2 u] -> Vec2 uSource
Sum a list of Vectors.
Note - this function is a candidate to go in Wumpus-Core, but it will be added when there is an intrinsic reason to to update Core (bug fix, or API change).
both :: Applicative f => f a -> f b -> f (a, b)Source
Applicative both - run both computations return the pair of the the answers.