Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Anchor
- type Box = Object
- newtype Anchorage = Anchorage {
- fromAnchorage :: Anchor -> Point
- data Object = Object {}
- class Anchored a where
- (#) :: Anchored a => a -> Anchor -> Point
- hdist :: Anchored a => a -> a -> Expr
- vdist :: Anchored a => a -> a -> Expr
- extend :: Expr -> Anchorage -> Anchorage
- shiftInDir :: Anchor -> Expr -> Point
- mkLabel :: Monad m => lab -> Diagram lab m Anchorage
- labelObj :: Monad m => lab -> Diagram lab m Box
- labelPt :: Monad m => lab -> Anchor -> Point -> Diagram lab m Box
- point :: Monad m => Diagram lab m Point
- pointBox :: Monad m => Diagram lab m Anchorage
- box :: Monad m => Diagram lab m Anchorage
- vrule :: Monad m => Diagram lab m Anchorage
- hrule :: Monad m => Diagram lab m Anchorage
- height :: Anchored a => a -> Expr
- width :: Anchored a => a -> Expr
- ascent :: Anchored a => a -> Expr
- descent :: Anchored a => a -> Expr
- fitsIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m ()
- fitsHorizontallyIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m ()
- fitsVerticallyIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m ()
- circleShape :: Monad m => Diagram lab m Object
- rectangleShape :: Monad m => Anchorage -> Diagram lab m Object
- traceAnchorage :: (Anchored a, Monad m) => Color -> a -> Diagram lab m ()
- labelBox :: Monad m => lab -> Diagram lab m Anchorage
- data OVector = OVector {}
- turn180 :: OVector -> OVector
- data FList xs a where
- edge :: Monad m => Object -> Object -> Diagram lab m OVector
- (.<.) :: Monad m => Point -> Point -> Diagram lab m ()
- insideBox :: Monad m => Anchored a => Point -> a -> Diagram lab m ()
- autoLabelObj :: Monad m => Box -> OVector -> Diagram lab m ()
- autoLabel :: Monad m => lab -> OVector -> Diagram lab m ()
- labeledEdge :: Monad m => Object -> Object -> Box -> Diagram lab m ()
- nodeDistance :: Expr
- leftOf :: Monad m => Object -> Object -> Diagram lab m ()
- topOf :: Monad m => Object -> Object -> Diagram lab m ()
- spread :: Monad m => (t -> t -> Expr) -> Expr -> [t] -> Diagram lab m ()
- node :: Monad m => lab -> Diagram lab m Object
- arrow :: Monad m => Object -> Object -> Diagram lab m OVector
- boundingBox :: (Monad m, Anchored a) => [a] -> Diagram lab m Object
Documentation
shiftInDir :: Anchor -> Expr -> Point Source
Makes a shift of size d
in the given direction.
mkLabel :: Monad m => lab -> Diagram lab m Anchorage Source
Make a label object. This is just some text surrounded by 4 points of blank.
labelPt :: Monad m => lab -> Anchor -> Point -> Diagram lab m Box Source
Label a point by a given TeX expression, at the given anchor.
pointBox :: Monad m => Diagram lab m Anchorage Source
A point anchorage (similar to a box of zero width and height)
fitsIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m () Source
Make one object fit (snugly) in the other.
fitsHorizontallyIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m () Source
Make one object fit (snugly) in the other.
fitsVerticallyIn :: (Monad m, Anchored a, Anchored b) => a -> b -> Diagram lab m () Source
Make one object fit (snugly) in the other.
circleShape :: Monad m => Diagram lab m Object Source
A circle
labelBox :: Monad m => lab -> Diagram lab m Anchorage Source
Typeset a piece of text and return its bounding box.
edge :: Monad m => Object -> Object -> Diagram lab m OVector Source
Traces a straight edge between two objects. A vector originated at the midpoint and pointing perpendicular to the edge is returned.
insideBox :: Monad m => Anchored a => Point -> a -> Diagram lab m () Source
Forces the point to be inside the (bounding box) of the object.
autoLabelObj :: Monad m => Box -> OVector -> Diagram lab m () Source
autoLabel o i
Layouts the label object o
at the given incidence
vector.
autoLabel :: Monad m => lab -> OVector -> Diagram lab m () Source
autoLabel o i
Layouts the label object o
at the given incidence
vector.
labeledEdge :: Monad m => Object -> Object -> Box -> Diagram lab m () Source
labeledEdge label source target
spread :: Monad m => (t -> t -> Expr) -> Expr -> [t] -> Diagram lab m () Source
Spread a number of objects by *minimum* a given distance. example: spread
hdist 30 ps