diagrams-lib-0.7.1.1: Embedded domain-specific language for declarative graphics

Maintainer | diagrams-discuss@googlegroups.com
Safe Haskell | None

Diagrams.TwoD.Adjust

Description

A default diagram-adjustment implementation for two-dimensional diagrams, useful for backend implementors.

Synopsis

- setDefault2DAttributes :: Semigroup m => QDiagram b R2 m -> QDiagram b R2 m
- adjustDiaSize2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)
- adjustDia2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)
- adjustSize :: SizeSpec2D -> (Double, Double) -> Transformation R2
- requiredScale :: SizeSpec2D -> (Double, Double) -> Double

# Documentation

setDefault2DAttributes :: Semigroup m => QDiagram b R2 m -> QDiagram b R2 mSource

Set default attributes of a 2D diagram (in case they have not been set):

- Line width 0.01
- Line color black
- Font size 1
- Line cap LineCapButt
- line join miter
- Miter limit 10

adjustDiaSize2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)Source

Adjust the size and position of a 2D diagram to fit within the requested size. The first two arguments specify a method for extracting the requested output size from the rendering options, and a way of updating the rendering options with a new (more specific) size.

adjustDia2D :: Monoid' m => (Options b R2 -> SizeSpec2D) -> (SizeSpec2D -> Options b R2 -> Options b R2) -> b -> Options b R2 -> QDiagram b R2 m -> (Options b R2, QDiagram b R2 m)Source

`adjustDia2D` provides a useful default implementation of the `adjustDia` method from the `Backend` type class.

As its first two arguments it requires a method for extracting the requested output size from the rendering options, and a way of updating the rendering options with a new (more specific) size.

It then performs the following adjustments:

- Set default attributes (see `setDefault2DAttributes`)
- Freeze the diagram in its final form
- Scale and translate the diagram to fit within the requested size (see `adjustDiaSize2D`)
- Also return the actual adjusted size of the diagram.

adjustSize :: SizeSpec2D -> (Double, Double) -> Transformation R2 Source

Deprecated: Use Diagrams.TwoD.Size.requiredScaleT instead.

Re-export `requiredScaleT` with the name `adjustSize` for backwards compatibility.

requiredScale :: SizeSpec2D -> (Double, Double) -> Double Source

`requiredScale spec sz` returns a scaling factor necessary to make something of size `sz` fit the requested size `spec`, without changing the aspect ratio. Hence an explicit specification of both dimensions may not be honored if the aspect ratios do not match; in that case the scaling will be as large as possible so that the object still fits within the requested size.