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

Diagrams.Direction

Description

Type for representing directions, polymorphic in vector space

Synopsis

# Documentation

data Direction v n Source #

A vector is described by a Direction and a magnitude. So we can think of a Direction as a vector that has forgotten its magnitude. Directions can be used with fromDirection and the lenses provided by its instances.

Instances

 Functor v => Functor (Direction v) Source # Methodsfmap :: (a -> b) -> Direction v a -> Direction v b #(<\$) :: a -> Direction v b -> Direction v a # HasPhi v => HasPhi (Direction v) Source # Methods_phi :: RealFloat n => Lens' (Direction v n) (Angle n) Source # HasTheta v => HasTheta (Direction v) Source # Methods_theta :: RealFloat n => Lens' (Direction v n) (Angle n) Source # Eq (v n) => Eq (Direction v n) Source # Methods(==) :: Direction v n -> Direction v n -> Bool #(/=) :: Direction v n -> Direction v n -> Bool # Ord (v n) => Ord (Direction v n) Source # Methodscompare :: Direction v n -> Direction v n -> Ordering #(<) :: Direction v n -> Direction v n -> Bool #(<=) :: Direction v n -> Direction v n -> Bool #(>) :: Direction v n -> Direction v n -> Bool #(>=) :: Direction v n -> Direction v n -> Bool #max :: Direction v n -> Direction v n -> Direction v n #min :: Direction v n -> Direction v n -> Direction v n # Read (v n) => Read (Direction v n) Source # MethodsreadsPrec :: Int -> ReadS (Direction v n) #readList :: ReadS [Direction v n] #readPrec :: ReadPrec (Direction v n) # Show (v n) => Show (Direction v n) Source # MethodsshowsPrec :: Int -> Direction v n -> ShowS #show :: Direction v n -> String #showList :: [Direction v n] -> ShowS # ((~) (* -> *) (V (v n)) v, (~) * (N (v n)) n, Transformable (v n)) => Transformable (Direction v n) Source # Methodstransform :: Transformation (V (Direction v n)) (N (Direction v n)) -> Direction v n -> Direction v n # type V (Direction v n) Source # type V (Direction v n) = v type N (Direction v n) Source # type N (Direction v n) = n

_Dir :: Iso' (Direction v n) (v n) Source #

_Dir is provided to allow efficient implementations of functions in particular vector-spaces, but should be used with care as it exposes too much information.

direction :: v n -> Direction v n Source #

direction v is the direction in which v points. Returns an unspecified value when given the zero vector as input.

dir :: v n -> Direction v n Source #

Synonym for direction.

fromDirection :: (Metric v, Floating n) => Direction v n -> v n Source #

fromDirection d is the unit vector in the direction d.

fromDir :: (Metric v, Floating n) => Direction v n -> v n Source #

Synonym for fromDirection.

angleBetweenDirs :: (Metric v, Floating n, Ord n) => Direction v n -> Direction v n -> Angle n Source #

compute the positive angle between the two directions in their common plane

dirBetween :: (Additive v, Num n) => Point v n -> Point v n -> Direction v n Source #

dirBetween p q returns the directions from p to q