content: {-# LANGUAGE FlexibleContexts     #-}
  {-# LANGUAGE TypeFamilies         #-}
  {-# LANGUAGE TypeSynonymInstances #-}
  -----------------------------------------------------------------------------
  -- |
  -- Module      :  Diagrams.ThreeD
  -- Copyright   :  (c) 2013-2015 diagrams-lib team (see LICENSE)
  -- License     :  BSD-style (see LICENSE)
  -- Maintainer  :  diagrams-discuss@googlegroups.com
  --
  -- This module defines the three-dimensional vector space R^3,
  -- three-dimensional transformations, and various predefined
  -- three-dimensional shapes.  This module re-exports useful
  -- functionality from a group of more specific modules:
  --
  --   * "Diagrams.ThreeD.Types" defines basic types for two-dimensional
  --     diagrams, including types representing the 3D Euclidean vector
  --     space and various systems of representing directions.
  --
  --   * "Diagrams.ThreeD.Transform" defines R^3-specific
  --     transformations such as rotation by an angle, and scaling,
  --     translation, and reflection in the X, Y, and Z directions.
  --     "Diagrams.ThreeD.Deform" defines several R^3-specific
  --     non-affine transformations, such as projections.
  --
  --   * "Diagrams.ThreeD.Shapes" defines three-dimensional solids,
  --     e.g. spheres and cubes.
  --
  --   * "Diagrams.ThreeD.Vector" defines some special 3D vectors and
  --     functions for converting between vectors and directions.
  --
  --   * "Diagrams.ThreeD.Light" and "Diagrams.ThreeD.Camera" define types needed
  --     for rendering 3D geometry to (2D) images.
  --
  --   * "Diagrams.ThreeD.Align" defines many alignment combinators
  --     specialized to three dimensions.
  --
  --   * "Diagrams.ThreeD.Attributes" defines 3D-specific attributes
  --     such as surface color, diffuse reflectance, and specular
  --     highlights.
  -----------------------------------------------------------------------------
  module Diagrams.ThreeD
    ( module Diagrams.ThreeD.Align
    , module Diagrams.ThreeD.Attributes
    , module Diagrams.ThreeD.Camera
    , module Diagrams.ThreeD.Deform
    , module Diagrams.ThreeD.Light
    , module Diagrams.ThreeD.Shapes
    , module Diagrams.ThreeD.Transform
    , module Diagrams.ThreeD.Types
    , module Diagrams.ThreeD.Vector
    ) where
  
  import           Diagrams.ThreeD.Align
  import           Diagrams.ThreeD.Attributes
  import           Diagrams.ThreeD.Camera
  import           Diagrams.ThreeD.Deform
  import           Diagrams.ThreeD.Light
  import           Diagrams.ThreeD.Shapes
  import           Diagrams.ThreeD.Transform
  import           Diagrams.ThreeD.Types
  import           Diagrams.ThreeD.Vector
  