Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Anchor
- type Box = Object
- type Anchorage = Anchor -> Point
- data Object = Object {
- objectName :: !String
- objectOutline :: !Path
- anchors :: !Anchorage
- (#) :: Object -> Anchor -> Point
- hdist :: Object -> Object -> Expr
- vdist :: Object -> Object -> Expr
- extend :: Expr -> Object -> Object
- shiftInDir :: Anchor -> Expr -> Point
- label :: Monad m => String -> lab -> Diagram lab m Box
- pathObject :: Monad m => Object -> Diagram lab m Object
- labelAt :: Monad m => String -> lab -> Anchor -> Point -> Diagram lab m Box
- point :: Monad m => String -> Diagram lab m Object
- box :: Monad m => String -> Diagram lab m Object
- vrule :: Monad m => String -> Diagram lab m Object
- hrule :: Monad m => String -> Diagram lab m Object
- height :: Object -> Expr
- width :: Object -> Expr
- ascent :: Object -> Expr
- descent :: Object -> Expr
- sloppyFitsHorizontallyIn :: Monad m => Object -> Object -> Diagram lab m ()
- fitsIn :: Monad m => Object -> Object -> Diagram lab m ()
- fitsHorizontallyIn :: Monad m => Object -> Object -> Diagram lab m ()
- fitsVerticallyIn :: Monad m => Object -> Object -> Diagram lab m ()
- circle :: Monad m => String -> Diagram lab m Object
- traceBox :: Monad m => Color -> Object -> Diagram lab m ()
- rawLabel :: Monad m => String -> lab -> Diagram lab m Object
- 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 => Point -> Object -> Diagram lab m ()
- autoLabelObj :: Monad m => Box -> OVector -> Diagram lab m ()
- autoLabel :: Monad m => String -> lab -> OVector -> Diagram lab m Object
- 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 ()
- rightOf :: Monad m => Object -> Object -> Diagram lab m ()
- spread :: Monad m => (t -> t -> Expr) -> Expr -> [t] -> Diagram lab m ()
- node :: Monad m => String -> lab -> Diagram lab m Object
- arrow :: Monad m => Object -> Object -> Diagram lab m OVector
- boundingBox :: Monad m => [Object] -> Diagram lab m Object
- noOverlap :: Monad m => Object -> Diagram lab m Object
Documentation
Object | |
|
label :: Monad m => String -> lab -> Diagram lab m Box Source #
Make a label object. This is the text surrounded by 4 points of blank and a rectangle outline.
labelAt :: Monad m => String -> lab -> Anchor -> Point -> Diagram lab m Box Source #
Label a point by a given TeX expression, at the given anchor.
fitsIn :: Monad m => Object -> Object -> Diagram lab m () Source #
Make one object fit (snugly) in the other.
fitsHorizontallyIn :: Monad m => Object -> Object -> Diagram lab m () Source #
Make one object fit (snugly) in the other.
fitsVerticallyIn :: Monad m => Object -> Object -> Diagram lab m () Source #
Make one object fit (snugly) in the other.
traceBox :: Monad m => Color -> Object -> Diagram lab m () Source #
Debug, by tracing the bounding box of the object in a certain color.
rawLabel :: Monad m => String -> lab -> Diagram lab m Object Source #
Typeset a piece of text and return its bounding box as an object. Probably,
use label
instead.
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 => Point -> Object -> 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 => String -> lab -> OVector -> Diagram lab m Object 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
nodeDistance :: Expr Source #
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
arrow :: Monad m => Object -> Object -> Diagram lab m OVector Source #
Draw an arrow between two objects