HaTeX-3.22.3.1: The Haskell LaTeX library.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Text.LaTeX.Packages.TikZ.PathBuilder

Description

This module provides a monadic interface to build TPath values. It does so using PathBuilders. The construction of a PathBuilder is equivalent to the construction of a TPath by hand, but with a sometimes more convenient syntax.

For example, this path corresponds to a triangle:

trianglePath :: TPath
trianglePath = bpath (pointAtXY (-1) 0) $ do
   line $ pointAtXY 1 0
   line $ pointAtXY 0 1
   pcycle

The equivalent syntax created by hand would be:

trianglePath :: TPath
trianglePath = Cycle $ Start (pointAtXY (-1) 0) ->- pointAtXY 1 0 ->- pointAtXY 0 1

The Cycle constructor at the beginning may seem unintuitive, since we are building the path from left to right. In the PathBuilder monad, the instructions are always written in order.

Synopsis

Path builder

data PathBuilder a Source #

Use a path builder to construct a value of type TPath. Use bpath for this purpose.

Instances

Instances details
Monad PathBuilder Source # 
Instance details

Defined in Text.LaTeX.Packages.TikZ.PathBuilder

Methods

(>>=) :: PathBuilder a -> (a -> PathBuilder b) -> PathBuilder b #

(>>) :: PathBuilder a -> PathBuilder b -> PathBuilder b #

return :: a -> PathBuilder a #

Functor PathBuilder Source # 
Instance details

Defined in Text.LaTeX.Packages.TikZ.PathBuilder

Methods

fmap :: (a -> b) -> PathBuilder a -> PathBuilder b #

(<$) :: a -> PathBuilder b -> PathBuilder a #

Applicative PathBuilder Source # 
Instance details

Defined in Text.LaTeX.Packages.TikZ.PathBuilder

Methods

pure :: a -> PathBuilder a #

(<*>) :: PathBuilder (a -> b) -> PathBuilder a -> PathBuilder b #

liftA2 :: (a -> b -> c) -> PathBuilder a -> PathBuilder b -> PathBuilder c #

(*>) :: PathBuilder a -> PathBuilder b -> PathBuilder b #

(<*) :: PathBuilder a -> PathBuilder b -> PathBuilder a #

bpath :: TPoint -> PathBuilder a -> TPath Source #

Build a path using a starting point and a PathBuilder.

Builder functions

line :: TPoint -> PathBuilder () Source #

Line from the current point to the given one.

rectangle :: TPoint -> PathBuilder () Source #

Rectangle with the current point as one cornder and the given point as the opposite corner.

circle :: Double -> PathBuilder () Source #

Circle with the given radius centered at the current point.

ellipse Source #

Arguments

:: Double

Half width of the ellipse.

-> Double

Half height of the ellipse.

-> PathBuilder () 

Ellipse with width and height described by the arguments and centered at the current point.

node :: LaTeX -> PathBuilder () Source #

Text centered at the current point.