Chart-1.4: A library for generating 2D Charts and Plots

Copyright(c) Tim Docker 2014
LicenseBSD-style (see chart/COPYRIGHT)
Safe HaskellNone
LanguageHaskell98

Graphics.Rendering.Chart.Backend.Impl

Description

This module provides the implementation details common to all ChartBackends.

Synopsis

Documentation

type ChartBackend a = Program ChartBackendInstr a Source

A ChartBackend provides the capability to render a chart somewhere.

The coordinate system of the backend has its initial origin (0,0) in the top left corner of the drawing plane. The x-axis points towards the top right corner and the y-axis points towards the bottom left corner. The unit used by coordinates, the font size, and lengths is the always the same, but depends on the backend. All angles are measured in radians.

The line, fill and font style are set to their default values initially.

Information about the semantics of the instructions can be found in the documentation of ChartBackendInstr.

strokePath :: Path -> ChartBackend () Source

Stroke the outline of the given path using the current LineStyle. This function does not perform alignment operations on the path. See Path for the exact semantic of paths.

fillPath :: Path -> ChartBackend () Source

Fill the given path using the current FillStyle. The given path will be closed prior to filling. This function does not perform alignment operations on the path. See Path for the exact semantic of paths.

textSize :: String -> ChartBackend TextSize Source

Calculate a TextSize object with rendering information about the given string without actually rendering it.

drawText :: Point -> String -> ChartBackend () Source

Draw a single-line textual label anchored by the baseline (vertical) left (horizontal) point. Uses the current FontStyle for drawing.

withTransform :: Matrix -> ChartBackend a -> ChartBackend a Source

Apply the given transformation in this local environment when drawing. The given transformation is applied after the current transformation. This means both are combined.

withFontStyle :: FontStyle -> ChartBackend a -> ChartBackend a Source

Use the given font style in this local environment when drawing text.

An implementing backend is expected to guarentee to support the following font families: serif, sans-serif and monospace;

If the backend is not able to find or load a given font it is required to fall back to a custom fail-safe font and use it instead.

withFillStyle :: FillStyle -> ChartBackend a -> ChartBackend a Source

Use the given fill style in this local environment when filling paths.

withLineStyle :: LineStyle -> ChartBackend a -> ChartBackend a Source

Use the given line style in this local environment when stroking paths.

withClipRegion :: Rect -> ChartBackend a -> ChartBackend a Source

Use the given clipping rectangle when drawing in this local environment. The new clipping region is intersected with the given clip region. You cannot escape the clip!

getPointAlignFn :: ChartBackend (Point -> Point) Source

Get the point alignment function

getCoordAlignFn :: ChartBackend (Point -> Point) Source

Get the coordinate alignment function