diagrams-lib-0.1: src/Diagrams/TwoD.hs
{-# LANGUAGE TypeSynonymInstances, FlexibleContexts, TypeFamilies #-}
-----------------------------------------------------------------------------
-- |
-- Module : Diagrams.TwoD
-- Copyright : (c) 2011 diagrams-lib team (see LICENSE)
-- License : BSD-style (see LICENSE)
-- Maintainer : diagrams-discuss@googlegroups.com
--
-- This module defines the two-dimensional vector space R^2,
-- two-dimensional transformations, and various predefined
-- two-dimensional shapes. This module re-exports useful
-- functionality from a group of more specific modules:
--
-- * "Diagrams.TwoD.Types" defines basic types for two-dimensional
-- diagrams.
--
-- * "Diagrams.TwoD.Align" defines alignment combinators specialized
-- to two dimensions (see "Diagrams.Align" for more general
-- alignment).
--
-- * "Diagrams.TwoD.Combinators" defines ways of combining diagrams
-- specialized to two dimensions (see also "Diagrams.Combinators"
-- for more general combining).
--
-- * "Diagrams.TwoD.Transform" defines R^2-specific transformations
-- such as rotation by an angle, and scaling, translation, and
-- reflection in the X and Y directions.
--
-- * "Diagrams.TwoD.Ellipse" defines ellipses.
--
-- * "Diagrams.TwoD.Arc" defines circular arcs.
--
-- * "Diagrams.TwoD.Path" exports various operations on
-- two-dimensional paths when viewed as regions of the plane.
--
-- * "Diagrams.TwoD.Shapes" defines other two-dimensional shapes,
-- e.g. various polygons.
--
-- * "Diagrams.TwoD.Util" defines some two-dimensional utilities,
-- such as unit vectors and functions for computing the size and
-- extent of diagrams in R^2.
--
-- * "Diagrams.TwoD.Model" defines some aids for visualizing
-- diagrams' internal model (local origins, bounding regions,
-- etc.)
--
-----------------------------------------------------------------------------
module Diagrams.TwoD
( -- * R^2
R2
, P2
, Angle
, unitX, unitY
-- * Paths
, stroke, strokeT
-- * Shapes
-- ** Rules
, hrule, vrule
-- ** Circle-ish things
, circle
, ellipse
, arc
-- ** General polygons
, polygon, polygonPath, polygonVertices
, PolygonOpts(..), PolygonOrientation(..)
-- ** Special polygons
, square
, starPolygon
, eqTriangle
-- * Transformations
-- ** Rotation
, rotation, rotate
, rotationBy, rotateBy
-- ** Scaling
, scalingX, scaleX
, scalingY, scaleY
, scaling, scale
-- ** Translation
, translationX, translateX
, translationY, translateY
, translation, translate
-- ** Reflection
, reflectionX, reflectX
, reflectionY, reflectY
-- * Combinators
, strutX, strutY
, (===), (|||)
, hcat, hcat'
, vcat, vcat'
-- * Alignment
, alignL, alignR, alignT, alignB, alignTL, alignTR, alignBL, alignBR
, alignX, alignY
, centerX, centerY, centerXY
-- * Utilities
, width, height, size2D
, extentX, extentY, center2D
-- * Visual aids for understanding the internal model
, showOrigin
) where
import Diagrams.TwoD.Types
import Diagrams.TwoD.Path
import Diagrams.TwoD.Ellipse
import Diagrams.TwoD.Arc
import Diagrams.TwoD.Shapes
import Diagrams.TwoD.Transform
import Diagrams.TwoD.Align
import Diagrams.TwoD.Combinators
import Diagrams.TwoD.Util
import Diagrams.TwoD.Model