Portability | GHC |
---|---|
Stability | highly unstable |
Maintainer | Stephen Tetley <stephen.tetley@gmail.com> |
Build absolute paths monadically.
** WARNING ** this module is an experiment, and may change significantly or even be dropped from future revisions.
- data AbsBuild u a
- runAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> (AbsPath u, Graphic u)
- execAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> Graphic u
- evalAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> AbsPath u
- tip :: AbsBuild u (Point2 u)
- absline :: Floating u => Point2 u -> AbsBuild u ()
- abscurve :: (Floating u, Ord u, Tolerance u) => Point2 u -> Point2 u -> Point2 u -> AbsBuild u ()
- absmove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => Point2 u -> AbsBuild u ()
- relline :: Floating u => Vec2 u -> AbsBuild u ()
- relcurve :: (Floating u, Ord u, Tolerance u) => Vec2 u -> Vec2 u -> Vec2 u -> AbsBuild u ()
- relmove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => Vec2 u -> AbsBuild u ()
- rellineParallel :: Floating u => u -> AbsBuild u ()
- rellinePerpendicular :: Floating u => u -> AbsBuild u ()
- relmoveParallel :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- relmovePerpendicular :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- ctrlcurve :: (Floating u, Ord u, Tolerance u) => Radian -> Radian -> Point2 u -> AbsBuild u ()
- insert :: Num u => LocGraphic u -> AbsBuild u ()
- vamp :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => Vamp u -> AbsBuild u ()
- cycle :: (Floating u, InterpretUnit u) => AbsBuild u ()
- setIncline :: Radian -> AbsBuild u ()
- pen_colour :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => RGBi -> AbsBuild u ()
- pen_width :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => Double -> AbsBuild u ()
- hline :: Floating u => u -> AbsBuild u ()
- vline :: Floating u => u -> AbsBuild u ()
- aline :: Floating u => u -> AbsBuild u ()
- hmove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- vmove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- amove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- line_up :: Floating u => u -> AbsBuild u ()
- line_down :: Floating u => u -> AbsBuild u ()
- line_left :: Floating u => u -> AbsBuild u ()
- line_right :: Floating u => u -> AbsBuild u ()
- line_up_left :: Floating u => u -> AbsBuild u ()
- line_up_right :: Floating u => u -> AbsBuild u ()
- line_down_left :: Floating u => u -> AbsBuild u ()
- line_down_right :: Floating u => u -> AbsBuild u ()
- line_north :: Floating u => u -> AbsBuild u ()
- line_south :: Floating u => u -> AbsBuild u ()
- line_east :: Floating u => u -> AbsBuild u ()
- line_west :: Floating u => u -> AbsBuild u ()
- line_northeast :: Floating u => u -> AbsBuild u ()
- line_northwest :: Floating u => u -> AbsBuild u ()
- line_southeast :: Floating u => u -> AbsBuild u ()
- line_southwest :: Floating u => u -> AbsBuild u ()
- move_up :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_down :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_left :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_up_left :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_up_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_down_left :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_down_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_north :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_south :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_east :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_west :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_northeast :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_northwest :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_southeast :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
- move_southwest :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()
Documentation
Absolute Path builder monad.
runAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> (AbsPath u, Graphic u)Source
Note - runAbsBuild drops the monadic answer and returns the constructed path and a trace of the inserts and sub-paths.
execAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> Graphic uSource
Run an AbsBuild
- return the Graphic formed by the pen
trace and the insert trace, forget the outline of the path.
evalAbsBuild :: (Floating u, InterpretUnit u) => Point2 u -> AbsBuild u a -> AbsPath uSource
Run an AbsBuild
- return the outline of the path, forget
the Graphic formed by the pen trace and the insert trace.
abscurve :: (Floating u, Ord u, Tolerance u) => Point2 u -> Point2 u -> Point2 u -> AbsBuild u ()Source
absmove :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => Point2 u -> AbsBuild u ()Source
absmove
is a pen up.
rellineParallel :: Floating u => u -> AbsBuild u ()Source
rellinePerpendicular :: Floating u => u -> AbsBuild u ()Source
relmoveParallel :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
relmovePerpendicular :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
ctrlcurve :: (Floating u, Ord u, Tolerance u) => Radian -> Radian -> Point2 u -> AbsBuild u ()Source
setIncline :: Radian -> AbsBuild u ()Source
Derived operators
pen_colour :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => RGBi -> AbsBuild u ()Source
line_right :: Floating u => u -> AbsBuild u ()Source
line_up_left :: Floating u => u -> AbsBuild u ()Source
Diagonal lines
line_up_right :: Floating u => u -> AbsBuild u ()Source
line_down_left :: Floating u => u -> AbsBuild u ()Source
line_down_right :: Floating u => u -> AbsBuild u ()Source
line_north :: Floating u => u -> AbsBuild u ()Source
line_south :: Floating u => u -> AbsBuild u ()Source
line_northeast :: Floating u => u -> AbsBuild u ()Source
line_northwest :: Floating u => u -> AbsBuild u ()Source
line_southeast :: Floating u => u -> AbsBuild u ()Source
line_southwest :: Floating u => u -> AbsBuild u ()Source
move_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_up_left :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
Diagonal moves
move_up_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_down_left :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_down_right :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_north :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_south :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_northeast :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_northwest :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_southeast :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source
move_southwest :: (Floating u, Ord u, Tolerance u, InterpretUnit u) => u -> AbsBuild u ()Source