diagrams-lib-1.3: src/Diagrams/ThreeD/Vector.hs
-----------------------------------------------------------------------------
-- |
-- Module : Diagrams.ThreeD.Vector
-- Copyright : (c) 2013 diagrams-lib team (see LICENSE)
-- License : BSD-style (see LICENSE)
-- Maintainer : diagrams-discuss@googlegroups.com
--
-- Three-dimensional vectors.
--
-----------------------------------------------------------------------------
module Diagrams.ThreeD.Vector
( -- * Special 3D vectors
unitX, unitY, unitZ, unit_X, unit_Y, unit_Z
, xDir, yDir, zDir
) where
import Control.Lens ((&), (.~))
import Diagrams.ThreeD.Types
import Diagrams.TwoD.Vector
import Diagrams.Direction
import Linear.Vector
-- | The unit vector in the positive Y direction.
unitZ :: (R3 v, Additive v, Num n) => v n
unitZ = zero & _z .~ 1
-- | The unit vector in the negative X direction.
unit_Z :: (R3 v, Additive v, Num n) => v n
unit_Z = zero & _z .~ (-1)
-- | A 'Direction' pointing in the Z direction.
zDir :: (R3 v, Additive v, Num n) => Direction v n
zDir = dir unitZ