diagrams-canvas-1.4.1.2: HTML5 canvas backend for diagrams drawing EDSL
Copyright(c) 2010 - 2014 diagrams-canvas team (see LICENSE)
LicenseBSD-style (see LICENSE)
Maintainerdiagrams-discuss@googlegroups.com
Safe HaskellSafe-Inferred
LanguageHaskell2010

Diagrams.Backend.Canvas

Description

A full-featured rendering backend for diagrams using Canvas. Implemented using the blank-canvas platform.

To invoke the Canvas backend, you have three options.

  • You can use the Diagrams.Backend.Canvas.CmdLine module to create standalone executables which will display the diagram in a browser using a web service.
  • You can use the renderCanvas function provided by this module, which gives you more programmatic control over when and how images are displayed (making it east to, for example, write a single program that displays multiple images, or one that diaplays images dynamically based on user input, and so on).
  • For the most flexiblity you can invoke the renderDia method from Backend instance for Canvas. In particular, renderDia has the generic type
renderDia :: b -> Options b v -> QDiagram b v m -> Result b v

(omitting a few type class contraints). b represents the backend type, v the vector space, and m the type of monoidal query annotations on the diagram. Options and Result are associated data and type families, respectively, which yield the type of option records and rendering results specific to any particular backend. For b ~ Canvas and v ~ R2, we have

data Options Canvas V2 Double = CanvasOptions
 { _size :: SizeSpec V2 -- ^^ The requested size
 }
data family Render Canvas V2 Double = C (RenderM ())
type family Result Canvas V2 Double = Canvas ()

So the type of renderDia resolves to

renderDia :: Canvas -> Options Canvas V2 Double -> QDiagram Canvas V2 Double m ->
Canvas()

which you could call like renderDia Canvas (CanvasOptions (width 250)) myDiagram

Synopsis

Documentation

data Canvas Source #

This data declaration is simply used as a token to distinguish this rendering engine.

Constructors

Canvas 

Instances

Instances details
Read Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Show Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Eq Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Methods

(==) :: Canvas -> Canvas -> Bool #

(/=) :: Canvas -> Canvas -> Bool #

Ord Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Backend Canvas V2 Double Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Associated Types

data Render Canvas V2 Double #

type Result Canvas V2 Double #

data Options Canvas V2 Double #

Mainable [(String, QDiagram Canvas V2 Double Any)] Source # 
Instance details

Defined in Diagrams.Backend.Canvas.CmdLine

Associated Types

type MainOpts [(String, QDiagram Canvas V2 Double Any)] #

Renderable (Text Double) Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Renderable (Path V2 Double) Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Renderable (Trail V2 Double) Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Renderable (DImage Double External) Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Monoid (Render Canvas V2 Double) Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Semigroup (Render Canvas V2 Double) Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Renderable (Segment Closed V2 Double) Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

Mainable (QDiagram Canvas V2 Double Any) Source # 
Instance details

Defined in Diagrams.Backend.Canvas.CmdLine

Associated Types

type MainOpts (QDiagram Canvas V2 Double Any) #

type N Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

type N Canvas = Double
type V Canvas Source # 
Instance details

Defined in Diagrams.Backend.Canvas

type V Canvas = V2
data Options Canvas V2 Double Source # 
Instance details

Defined in Diagrams.Backend.Canvas

data Render Canvas V2 Double Source # 
Instance details

Defined in Diagrams.Backend.Canvas

data Render Canvas V2 Double = C (RenderM ())
type Result Canvas V2 Double Source # 
Instance details

Defined in Diagrams.Backend.Canvas

type MainOpts [(String, QDiagram Canvas V2 Double Any)] Source # 
Instance details

Defined in Diagrams.Backend.Canvas.CmdLine

type MainOpts (QDiagram Canvas V2 Double Any) Source # 
Instance details

Defined in Diagrams.Backend.Canvas.CmdLine

type B = Canvas Source #

data family Options b (v :: Type -> Type) n #

Backend-specific rendering options.

Instances

Instances details
data Options NullBackend v n 
Instance details

Defined in Diagrams.Core.Types

data Options Canvas V2 Double Source # 
Instance details

Defined in Diagrams.Backend.Canvas