Maintainer | diagrams-discuss@googlegroups.com |
---|---|
Safe Haskell | None |
Alignment combinators specialized for three dimensions. See Diagrams.Align for more general alignment combinators.
The basic idea is that alignment is achieved by moving diagrams'
local origins relative to their envelopes or traces (or some other
sort of boundary). For example, to align several diagrams along
their tops, we first move their local origins to the upper edge of
their boundary (using e.g. map
), and then put them
together with their local origins along a line (using e.g. alignZMax
cat
from Diagrams.Combinators).
- alignXMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- alignXMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- alignYMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- alignYMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- alignZMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- alignZMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- snugXMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugXMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugYMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugYMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugZMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugZMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- alignX :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> a
- snugX :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> a
- alignY :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> a
- snugY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> a
- alignZ :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> a
- snugZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> a
- centerX :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerY :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerXY :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerXZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerYZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> a
- centerXYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterX :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterXY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterXZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
- snugCenterXYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> a
Absolute alignment
Align by envelope
alignXMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitX so that all points have positive x-values.
alignXMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitX so that all points have negative x-values.
alignYMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitY so that all points have positive y-values.
alignYMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitY so that all points have negative y-values.
alignZMin :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitZ so that all points have positive z-values.
alignZMax :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Translate the diagram along unitZ so that all points have negative z-values.
Align by trace
snugXMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugXMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugYMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugYMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
Move the origin along unitY until it touches the edge of the diagram.
snugZMin :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
Move the origin along unit_Z until it touches the edge of the diagram.
snugZMax :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
Move the origin along unitZ until it touches the edge of the diagram.
Relative alignment
alignX :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
alignX
and snugX
move the local origin along unitX as follows:
-
alignX (-1)
moves the local origin to the low-x of the boundary; -
align 1
moves the local origin to the high-x edge; - any other argument interpolates linearly between these. For
example,
alignX 0
centers,alignX 2
moves the origin one "radius" to the right of the right edge, and so on. -
snugX
works the same way.
snugX :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
See the documentation for alignX
.
alignY :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
Like alignX
, but moving the local origin vertically, with an
argument of 1
corresponding to the top edge and (-1)
corresponding
to the bottom edge.
snugY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
alignZ :: (Alignable a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
Like alignX
, but moving the local origin in the Z direction, with an
argument of 1
corresponding to the top edge and (-1)
corresponding
to the bottom edge.
snugZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => Double -> a -> aSource
Centering
centerX :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center the local origin along the X-axis.
centerY :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center the local origin along the Y-axis.
centerZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center the local origin along the Z-axis.
centerXY :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center along both the X- and Y-axes.
centerXZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center along both the X- and Z-axes.
centerYZ :: (Alignable a, HasOrigin a, V a ~ R3) => a -> aSource
Center along both the Y- and Z-axes.
centerXYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
Center an object in three dimensions.
snugCenterX :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterXY :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterXZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource
snugCenterXYZ :: (Fractional (Scalar (V a)), Alignable a, Traced a, HasOrigin a, V a ~ R3) => a -> aSource