dyna-gloss-0.1.0.0: FRP for gloss graphics and animation library
Safe HaskellNone
LanguageHaskell2010

Dyna.Gloss.Data.Vec

Synopsis

Documentation

data Vec Source #

Pair of unboxed floats. All operations on vectors are strict which is more suitable for computation intensive domains such as computer graphics.

Constructors

Vec 

Fields

Instances

Instances details
Eq Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

(==) :: Vec -> Vec -> Bool #

(/=) :: Vec -> Vec -> Bool #

Fractional Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

(/) :: Vec -> Vec -> Vec #

recip :: Vec -> Vec #

fromRational :: Rational -> Vec #

Num Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

(+) :: Vec -> Vec -> Vec #

(-) :: Vec -> Vec -> Vec #

(*) :: Vec -> Vec -> Vec #

negate :: Vec -> Vec #

abs :: Vec -> Vec #

signum :: Vec -> Vec #

fromInteger :: Integer -> Vec #

Ord Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

compare :: Vec -> Vec -> Ordering #

(<) :: Vec -> Vec -> Bool #

(<=) :: Vec -> Vec -> Bool #

(>) :: Vec -> Vec -> Bool #

(>=) :: Vec -> Vec -> Bool #

max :: Vec -> Vec -> Vec #

min :: Vec -> Vec -> Vec #

Show Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

showsPrec :: Int -> Vec -> ShowS #

show :: Vec -> String #

showList :: [Vec] -> ShowS #

AdditiveGroup Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

zeroV :: Vec #

(^+^) :: Vec -> Vec -> Vec #

negateV :: Vec -> Vec #

(^-^) :: Vec -> Vec -> Vec #

VectorSpace Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Associated Types

type Scalar Vec #

Methods

(*^) :: Scalar Vec -> Vec -> Vec #

AffineSpace Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Associated Types

type Diff Vec #

Methods

(.-.) :: Vec -> Vec -> Diff Vec #

(.+^) :: Vec -> Diff Vec -> Vec #

HasCross2 Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

cross2 :: Vec -> Vec #

HasNormal Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

normalVec :: Vec -> Vec #

BasisArity Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Methods

basisArity :: Vec -> Int #

HasBasis Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

Associated Types

type Basis Vec #

type Scalar Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

type Diff Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

type Diff Vec = Vec
type Basis Vec Source # 
Instance details

Defined in Dyna.Gloss.Data.Vec

magV :: Vec -> Float Source #

The magnitude of a vector.

argV :: Vec -> Float Source #

The angle of this vector, relative to the +ve x-axis.

dotV :: Vec -> Vec -> Float Source #

The dot product of two vectors.

detV :: Vec -> Vec -> Float Source #

The determinant of two vectors.

mulSV :: Float -> Vec -> Vec Source #

Multiply a vector by a scalar.

rotateV :: Float -> Vec -> Vec Source #

Rotate a vector by an angle (in radians). +ve angle is counter-clockwise.

angleVV :: Vec -> Vec -> Float Source #

Compute the inner angle (in radians) between two vectors.

normalizeV :: Vec -> Vec Source #

Normalise a vector, so it has a magnitude of 1.

unitVecAtAngle :: Float -> Vec Source #

Produce a unit vector at a given angle relative to the +ve x-axis. The provided angle is in radians.

e :: Float -> Vec Source #

Shortcut for unitVecAtAngle

data VecBasis Source #

Constructors

VecX 
VecY 

fromTuple :: (Float, Float) -> Vec Source #

Converts tuple of floats to vector

toTuple :: Vec -> (Float, Float) Source #

Converts vector to tuple of Floats