geomancy-0.2.4.0: Geometry and matrix manipulation
Safe HaskellNone
LanguageHaskell2010

Geomancy

Synopsis

Vectors

Single-precision / float32s

data Vec2 Source #

Instances

Instances details
Eq Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

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

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

Floating Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

pi :: Vec2 #

exp :: Vec2 -> Vec2 #

log :: Vec2 -> Vec2 #

sqrt :: Vec2 -> Vec2 #

(**) :: Vec2 -> Vec2 -> Vec2 #

logBase :: Vec2 -> Vec2 -> Vec2 #

sin :: Vec2 -> Vec2 #

cos :: Vec2 -> Vec2 #

tan :: Vec2 -> Vec2 #

asin :: Vec2 -> Vec2 #

acos :: Vec2 -> Vec2 #

atan :: Vec2 -> Vec2 #

sinh :: Vec2 -> Vec2 #

cosh :: Vec2 -> Vec2 #

tanh :: Vec2 -> Vec2 #

asinh :: Vec2 -> Vec2 #

acosh :: Vec2 -> Vec2 #

atanh :: Vec2 -> Vec2 #

log1p :: Vec2 -> Vec2 #

expm1 :: Vec2 -> Vec2 #

log1pexp :: Vec2 -> Vec2 #

log1mexp :: Vec2 -> Vec2 #

Fractional Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

(/) :: Vec2 -> Vec2 -> Vec2 #

recip :: Vec2 -> Vec2 #

fromRational :: Rational -> Vec2 #

Num Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

(+) :: Vec2 -> Vec2 -> Vec2 #

(-) :: Vec2 -> Vec2 -> Vec2 #

(*) :: Vec2 -> Vec2 -> Vec2 #

negate :: Vec2 -> Vec2 #

abs :: Vec2 -> Vec2 #

signum :: Vec2 -> Vec2 #

fromInteger :: Integer -> Vec2 #

Ord Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

compare :: Vec2 -> Vec2 -> Ordering #

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

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

(>) :: Vec2 -> Vec2 -> Bool #

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

max :: Vec2 -> Vec2 -> Vec2 #

min :: Vec2 -> Vec2 -> Vec2 #

Show Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

showsPrec :: Int -> Vec2 -> ShowS #

show :: Vec2 -> String #

showList :: [Vec2] -> ShowS #

Storable Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

sizeOf :: Vec2 -> Int #

alignment :: Vec2 -> Int #

peekElemOff :: Ptr Vec2 -> Int -> IO Vec2 #

pokeElemOff :: Ptr Vec2 -> Int -> Vec2 -> IO () #

peekByteOff :: Ptr b -> Int -> IO Vec2 #

pokeByteOff :: Ptr b -> Int -> Vec2 -> IO () #

peek :: Ptr Vec2 -> IO Vec2 #

poke :: Ptr Vec2 -> Vec2 -> IO () #

NFData Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

rnf :: Vec2 -> () #

MonoFunctor Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

omap :: (Element Vec2 -> Element Vec2) -> Vec2 -> Vec2 #

MonoPointed Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

opoint :: Element Vec2 -> Vec2 #

Elementwise Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

GlNearest Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

VectorSpace Vec2 Float Source # 
Instance details

Defined in Geomancy.Vec2

GlModf Vec2 Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Methods

glModf :: Vec2 -> (Vec2, Vec2) Source #

type Element Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

withVec2 :: Vec2 -> (Float -> Float -> r) -> r Source #

pattern WithVec2 :: Float -> Float -> Vec2 Source #

data Vec3 Source #

Instances

Instances details
Eq Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

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

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

Floating Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

pi :: Vec3 #

exp :: Vec3 -> Vec3 #

log :: Vec3 -> Vec3 #

sqrt :: Vec3 -> Vec3 #

(**) :: Vec3 -> Vec3 -> Vec3 #

logBase :: Vec3 -> Vec3 -> Vec3 #

sin :: Vec3 -> Vec3 #

cos :: Vec3 -> Vec3 #

tan :: Vec3 -> Vec3 #

asin :: Vec3 -> Vec3 #

acos :: Vec3 -> Vec3 #

atan :: Vec3 -> Vec3 #

sinh :: Vec3 -> Vec3 #

cosh :: Vec3 -> Vec3 #

tanh :: Vec3 -> Vec3 #

asinh :: Vec3 -> Vec3 #

acosh :: Vec3 -> Vec3 #

atanh :: Vec3 -> Vec3 #

log1p :: Vec3 -> Vec3 #

expm1 :: Vec3 -> Vec3 #

log1pexp :: Vec3 -> Vec3 #

log1mexp :: Vec3 -> Vec3 #

Fractional Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(/) :: Vec3 -> Vec3 -> Vec3 #

recip :: Vec3 -> Vec3 #

fromRational :: Rational -> Vec3 #

Num Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

(+) :: Vec3 -> Vec3 -> Vec3 #

(-) :: Vec3 -> Vec3 -> Vec3 #

(*) :: Vec3 -> Vec3 -> Vec3 #

negate :: Vec3 -> Vec3 #

abs :: Vec3 -> Vec3 #

signum :: Vec3 -> Vec3 #

fromInteger :: Integer -> Vec3 #

Ord Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

compare :: Vec3 -> Vec3 -> Ordering #

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

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

(>) :: Vec3 -> Vec3 -> Bool #

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

max :: Vec3 -> Vec3 -> Vec3 #

min :: Vec3 -> Vec3 -> Vec3 #

Show Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

showsPrec :: Int -> Vec3 -> ShowS #

show :: Vec3 -> String #

showList :: [Vec3] -> ShowS #

Storable Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

sizeOf :: Vec3 -> Int #

alignment :: Vec3 -> Int #

peekElemOff :: Ptr Vec3 -> Int -> IO Vec3 #

pokeElemOff :: Ptr Vec3 -> Int -> Vec3 -> IO () #

peekByteOff :: Ptr b -> Int -> IO Vec3 #

pokeByteOff :: Ptr b -> Int -> Vec3 -> IO () #

peek :: Ptr Vec3 -> IO Vec3 #

poke :: Ptr Vec3 -> Vec3 -> IO () #

NFData Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

rnf :: Vec3 -> () #

MonoFunctor Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

omap :: (Element Vec3 -> Element Vec3) -> Vec3 -> Vec3 #

MonoPointed Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

opoint :: Element Vec3 -> Vec3 #

Elementwise Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

GlNearest Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

VectorSpace Vec3 Float Source # 
Instance details

Defined in Geomancy.Vec3

GlModf Vec3 Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Methods

glModf :: Vec3 -> (Vec3, Vec3) Source #

type Element Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

withVec3 :: Vec3 -> (Float -> Float -> Float -> r) -> r Source #

pattern WithVec3 :: Float -> Float -> Float -> Vec3 Source #

data Vec4 Source #

Instances

Instances details
Eq Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

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

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

Floating Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

pi :: Vec4 #

exp :: Vec4 -> Vec4 #

log :: Vec4 -> Vec4 #

sqrt :: Vec4 -> Vec4 #

(**) :: Vec4 -> Vec4 -> Vec4 #

logBase :: Vec4 -> Vec4 -> Vec4 #

sin :: Vec4 -> Vec4 #

cos :: Vec4 -> Vec4 #

tan :: Vec4 -> Vec4 #

asin :: Vec4 -> Vec4 #

acos :: Vec4 -> Vec4 #

atan :: Vec4 -> Vec4 #

sinh :: Vec4 -> Vec4 #

cosh :: Vec4 -> Vec4 #

tanh :: Vec4 -> Vec4 #

asinh :: Vec4 -> Vec4 #

acosh :: Vec4 -> Vec4 #

atanh :: Vec4 -> Vec4 #

log1p :: Vec4 -> Vec4 #

expm1 :: Vec4 -> Vec4 #

log1pexp :: Vec4 -> Vec4 #

log1mexp :: Vec4 -> Vec4 #

Fractional Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

(/) :: Vec4 -> Vec4 -> Vec4 #

recip :: Vec4 -> Vec4 #

fromRational :: Rational -> Vec4 #

Num Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

(+) :: Vec4 -> Vec4 -> Vec4 #

(-) :: Vec4 -> Vec4 -> Vec4 #

(*) :: Vec4 -> Vec4 -> Vec4 #

negate :: Vec4 -> Vec4 #

abs :: Vec4 -> Vec4 #

signum :: Vec4 -> Vec4 #

fromInteger :: Integer -> Vec4 #

Ord Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

compare :: Vec4 -> Vec4 -> Ordering #

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

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

(>) :: Vec4 -> Vec4 -> Bool #

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

max :: Vec4 -> Vec4 -> Vec4 #

min :: Vec4 -> Vec4 -> Vec4 #

Show Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

showsPrec :: Int -> Vec4 -> ShowS #

show :: Vec4 -> String #

showList :: [Vec4] -> ShowS #

Storable Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

sizeOf :: Vec4 -> Int #

alignment :: Vec4 -> Int #

peekElemOff :: Ptr Vec4 -> Int -> IO Vec4 #

pokeElemOff :: Ptr Vec4 -> Int -> Vec4 -> IO () #

peekByteOff :: Ptr b -> Int -> IO Vec4 #

pokeByteOff :: Ptr b -> Int -> Vec4 -> IO () #

peek :: Ptr Vec4 -> IO Vec4 #

poke :: Ptr Vec4 -> Vec4 -> IO () #

NFData Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

rnf :: Vec4 -> () #

MonoFunctor Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

omap :: (Element Vec4 -> Element Vec4) -> Vec4 -> Vec4 #

MonoPointed Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

opoint :: Element Vec4 -> Vec4 #

Elementwise Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

GlNearest Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

VectorSpace Vec4 Float Source # 
Instance details

Defined in Geomancy.Vec4

GlModf Vec4 Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Methods

glModf :: Vec4 -> (Vec4, Vec4) Source #

type Element Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

withVec4 :: Vec4 -> (Float -> Float -> Float -> Float -> r) -> r Source #

pattern WithVec4 :: Float -> Float -> Float -> Float -> Vec4 Source #

Signed / int32s

data IVec2 Source #

Instances

Instances details
Eq IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

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

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

Num IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Ord IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

compare :: IVec2 -> IVec2 -> Ordering #

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

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

(>) :: IVec2 -> IVec2 -> Bool #

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

max :: IVec2 -> IVec2 -> IVec2 #

min :: IVec2 -> IVec2 -> IVec2 #

Show IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

showsPrec :: Int -> IVec2 -> ShowS #

show :: IVec2 -> String #

showList :: [IVec2] -> ShowS #

Storable IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

sizeOf :: IVec2 -> Int #

alignment :: IVec2 -> Int #

peekElemOff :: Ptr IVec2 -> Int -> IO IVec2 #

pokeElemOff :: Ptr IVec2 -> Int -> IVec2 -> IO () #

peekByteOff :: Ptr b -> Int -> IO IVec2 #

pokeByteOff :: Ptr b -> Int -> IVec2 -> IO () #

peek :: Ptr IVec2 -> IO IVec2 #

poke :: Ptr IVec2 -> IVec2 -> IO () #

NFData IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

rnf :: IVec2 -> () #

MonoFunctor IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

omap :: (Element IVec2 -> Element IVec2) -> IVec2 -> IVec2 #

MonoPointed IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Methods

opoint :: Element IVec2 -> IVec2 #

Elementwise IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

type Element IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

withIVec2 :: IVec2 -> (Int32 -> Int32 -> r) -> r Source #

pattern WithIVec2 :: Int32 -> Int32 -> IVec2 Source #

data IVec3 Source #

Instances

Instances details
Eq IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

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

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

Num IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Ord IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

compare :: IVec3 -> IVec3 -> Ordering #

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

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

(>) :: IVec3 -> IVec3 -> Bool #

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

max :: IVec3 -> IVec3 -> IVec3 #

min :: IVec3 -> IVec3 -> IVec3 #

Show IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

showsPrec :: Int -> IVec3 -> ShowS #

show :: IVec3 -> String #

showList :: [IVec3] -> ShowS #

Storable IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

sizeOf :: IVec3 -> Int #

alignment :: IVec3 -> Int #

peekElemOff :: Ptr IVec3 -> Int -> IO IVec3 #

pokeElemOff :: Ptr IVec3 -> Int -> IVec3 -> IO () #

peekByteOff :: Ptr b -> Int -> IO IVec3 #

pokeByteOff :: Ptr b -> Int -> IVec3 -> IO () #

peek :: Ptr IVec3 -> IO IVec3 #

poke :: Ptr IVec3 -> IVec3 -> IO () #

NFData IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

rnf :: IVec3 -> () #

MonoFunctor IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

omap :: (Element IVec3 -> Element IVec3) -> IVec3 -> IVec3 #

MonoPointed IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Methods

opoint :: Element IVec3 -> IVec3 #

Elementwise IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

type Element IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

withIVec3 :: IVec3 -> (Int32 -> Int32 -> Int32 -> r) -> r Source #

pattern WithIVec3 :: Int32 -> Int32 -> Int32 -> IVec3 Source #

data IVec4 Source #

Instances

Instances details
Eq IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

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

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

Num IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Ord IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

compare :: IVec4 -> IVec4 -> Ordering #

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

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

(>) :: IVec4 -> IVec4 -> Bool #

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

max :: IVec4 -> IVec4 -> IVec4 #

min :: IVec4 -> IVec4 -> IVec4 #

Show IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

showsPrec :: Int -> IVec4 -> ShowS #

show :: IVec4 -> String #

showList :: [IVec4] -> ShowS #

Storable IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

sizeOf :: IVec4 -> Int #

alignment :: IVec4 -> Int #

peekElemOff :: Ptr IVec4 -> Int -> IO IVec4 #

pokeElemOff :: Ptr IVec4 -> Int -> IVec4 -> IO () #

peekByteOff :: Ptr b -> Int -> IO IVec4 #

pokeByteOff :: Ptr b -> Int -> IVec4 -> IO () #

peek :: Ptr IVec4 -> IO IVec4 #

poke :: Ptr IVec4 -> IVec4 -> IO () #

NFData IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

rnf :: IVec4 -> () #

MonoFunctor IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

omap :: (Element IVec4 -> Element IVec4) -> IVec4 -> IVec4 #

MonoPointed IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Methods

opoint :: Element IVec4 -> IVec4 #

Elementwise IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

type Element IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

withIVec4 :: IVec4 -> (Int32 -> Int32 -> Int32 -> Int32 -> r) -> r Source #

pattern WithIVec4 :: Int32 -> Int32 -> Int32 -> Int32 -> IVec4 Source #

Unsigned / word32s

data UVec2 Source #

Instances

Instances details
Eq UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

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

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

Num UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Ord UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

compare :: UVec2 -> UVec2 -> Ordering #

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

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

(>) :: UVec2 -> UVec2 -> Bool #

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

max :: UVec2 -> UVec2 -> UVec2 #

min :: UVec2 -> UVec2 -> UVec2 #

Show UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

showsPrec :: Int -> UVec2 -> ShowS #

show :: UVec2 -> String #

showList :: [UVec2] -> ShowS #

Storable UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

sizeOf :: UVec2 -> Int #

alignment :: UVec2 -> Int #

peekElemOff :: Ptr UVec2 -> Int -> IO UVec2 #

pokeElemOff :: Ptr UVec2 -> Int -> UVec2 -> IO () #

peekByteOff :: Ptr b -> Int -> IO UVec2 #

pokeByteOff :: Ptr b -> Int -> UVec2 -> IO () #

peek :: Ptr UVec2 -> IO UVec2 #

poke :: Ptr UVec2 -> UVec2 -> IO () #

NFData UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

rnf :: UVec2 -> () #

MonoFunctor UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

omap :: (Element UVec2 -> Element UVec2) -> UVec2 -> UVec2 #

MonoPointed UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Methods

opoint :: Element UVec2 -> UVec2 #

Elementwise UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

type Element UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

withUVec2 :: UVec2 -> (Word32 -> Word32 -> r) -> r Source #

pattern WithUVec2 :: Word32 -> Word32 -> UVec2 Source #

data UVec3 Source #

Instances

Instances details
Eq UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

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

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

Num UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Ord UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

compare :: UVec3 -> UVec3 -> Ordering #

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

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

(>) :: UVec3 -> UVec3 -> Bool #

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

max :: UVec3 -> UVec3 -> UVec3 #

min :: UVec3 -> UVec3 -> UVec3 #

Show UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

showsPrec :: Int -> UVec3 -> ShowS #

show :: UVec3 -> String #

showList :: [UVec3] -> ShowS #

Storable UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

sizeOf :: UVec3 -> Int #

alignment :: UVec3 -> Int #

peekElemOff :: Ptr UVec3 -> Int -> IO UVec3 #

pokeElemOff :: Ptr UVec3 -> Int -> UVec3 -> IO () #

peekByteOff :: Ptr b -> Int -> IO UVec3 #

pokeByteOff :: Ptr b -> Int -> UVec3 -> IO () #

peek :: Ptr UVec3 -> IO UVec3 #

poke :: Ptr UVec3 -> UVec3 -> IO () #

NFData UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

rnf :: UVec3 -> () #

MonoFunctor UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

omap :: (Element UVec3 -> Element UVec3) -> UVec3 -> UVec3 #

MonoPointed UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Methods

opoint :: Element UVec3 -> UVec3 #

Elementwise UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

type Element UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

withUVec3 :: UVec3 -> (Word32 -> Word32 -> Word32 -> r) -> r Source #

pattern WithUVec3 :: Word32 -> Word32 -> Word32 -> UVec3 Source #

data UVec4 Source #

Instances

Instances details
Eq UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

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

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

Num UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Ord UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

compare :: UVec4 -> UVec4 -> Ordering #

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

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

(>) :: UVec4 -> UVec4 -> Bool #

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

max :: UVec4 -> UVec4 -> UVec4 #

min :: UVec4 -> UVec4 -> UVec4 #

Show UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

showsPrec :: Int -> UVec4 -> ShowS #

show :: UVec4 -> String #

showList :: [UVec4] -> ShowS #

Storable UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

sizeOf :: UVec4 -> Int #

alignment :: UVec4 -> Int #

peekElemOff :: Ptr UVec4 -> Int -> IO UVec4 #

pokeElemOff :: Ptr UVec4 -> Int -> UVec4 -> IO () #

peekByteOff :: Ptr b -> Int -> IO UVec4 #

pokeByteOff :: Ptr b -> Int -> UVec4 -> IO () #

peek :: Ptr UVec4 -> IO UVec4 #

poke :: Ptr UVec4 -> UVec4 -> IO () #

NFData UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

rnf :: UVec4 -> () #

MonoFunctor UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

omap :: (Element UVec4 -> Element UVec4) -> UVec4 -> UVec4 #

MonoPointed UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Methods

opoint :: Element UVec4 -> UVec4 #

Elementwise UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

type Element UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

withUVec4 :: UVec4 -> (Word32 -> Word32 -> Word32 -> Word32 -> r) -> r Source #

pattern WithUVec4 :: Word32 -> Word32 -> Word32 -> Word32 -> UVec4 Source #

Generic maps

class Elementwise a where Source #

Minimal complete definition

emap2, emap3, emap4, emap5

Methods

epoint :: Element a -> a Source #

default epoint :: MonoPointed a => Element a -> a Source #

emap :: (Element a -> Element a) -> a -> a Source #

default emap :: MonoFunctor a => (Element a -> Element a) -> a -> a Source #

emap2 :: (Element a -> Element a -> Element a) -> a -> a -> a Source #

emap3 :: (Element a -> Element a -> Element a -> Element a) -> a -> a -> a -> a Source #

emap4 :: (Element a -> Element a -> Element a -> Element a -> Element a) -> a -> a -> a -> a -> a Source #

emap5 :: (Element a -> Element a -> Element a -> Element a -> Element a -> Element a) -> a -> a -> a -> a -> a -> a Source #

Instances

Instances details
Elementwise IVec2 Source # 
Instance details

Defined in Geomancy.IVec2

Elementwise IVec3 Source # 
Instance details

Defined in Geomancy.IVec3

Elementwise IVec4 Source # 
Instance details

Defined in Geomancy.IVec4

Elementwise UVec2 Source # 
Instance details

Defined in Geomancy.UVec2

Elementwise UVec3 Source # 
Instance details

Defined in Geomancy.UVec3

Elementwise UVec4 Source # 
Instance details

Defined in Geomancy.UVec4

Elementwise Vec2 Source # 
Instance details

Defined in Geomancy.Vec2

Elementwise Packed Source # 
Instance details

Defined in Geomancy.Vec3

Elementwise Vec3 Source # 
Instance details

Defined in Geomancy.Vec3

Elementwise Vec4 Source # 
Instance details

Defined in Geomancy.Vec4

Elementwise v => Elementwise (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

epoint :: Element (Point v) -> Point v Source #

emap :: (Element (Point v) -> Element (Point v)) -> Point v -> Point v Source #

emap2 :: (Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v Source #

emap3 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v Source #

emap4 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v Source #

emap5 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v -> Point v Source #

Matrices

data Mat4 Source #

Instances

Instances details
Show Mat4 Source # 
Instance details

Defined in Geomancy.Mat4

Methods

showsPrec :: Int -> Mat4 -> ShowS #

show :: Mat4 -> String #

showList :: [Mat4] -> ShowS #

Semigroup Mat4 Source # 
Instance details

Defined in Geomancy.Mat4

Methods

(<>) :: Mat4 -> Mat4 -> Mat4 #

sconcat :: NonEmpty Mat4 -> Mat4 #

stimes :: Integral b => b -> Mat4 -> Mat4 #

Monoid Mat4 Source # 
Instance details

Defined in Geomancy.Mat4

Methods

mempty :: Mat4 #

mappend :: Mat4 -> Mat4 -> Mat4 #

mconcat :: [Mat4] -> Mat4 #

Storable Mat4 Source # 
Instance details

Defined in Geomancy.Mat4

Methods

sizeOf :: Mat4 -> Int #

alignment :: Mat4 -> Int #

peekElemOff :: Ptr Mat4 -> Int -> IO Mat4 #

pokeElemOff :: Ptr Mat4 -> Int -> Mat4 -> IO () #

peekByteOff :: Ptr b -> Int -> IO Mat4 #

pokeByteOff :: Ptr b -> Int -> Mat4 -> IO () #

peek :: Ptr Mat4 -> IO Mat4 #

poke :: Ptr Mat4 -> Mat4 -> IO () #

NFData Mat4 Source # 
Instance details

Defined in Geomancy.Mat4

Methods

rnf :: Mat4 -> () #

Other beasts

data Quaternion Source #

Instances

Instances details
Eq Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

Num Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

Ord Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

Show Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

Storable Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

NFData Quaternion Source # 
Instance details

Defined in Geomancy.Quaternion

Methods

rnf :: Quaternion -> () #

withQuaternion :: Quaternion -> (Float -> Float -> Float -> Float -> r) -> r Source #

Spaces

newtype Point v Source #

Constructors

Point v 

Instances

Instances details
Eq v => Eq (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(==) :: Point v -> Point v -> Bool #

(/=) :: Point v -> Point v -> Bool #

Fractional v => Fractional (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(/) :: Point v -> Point v -> Point v #

recip :: Point v -> Point v #

fromRational :: Rational -> Point v #

Num v => Num (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

(+) :: Point v -> Point v -> Point v #

(-) :: Point v -> Point v -> Point v #

(*) :: Point v -> Point v -> Point v #

negate :: Point v -> Point v #

abs :: Point v -> Point v #

signum :: Point v -> Point v #

fromInteger :: Integer -> Point v #

Ord v => Ord (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

compare :: Point v -> Point v -> Ordering #

(<) :: Point v -> Point v -> Bool #

(<=) :: Point v -> Point v -> Bool #

(>) :: Point v -> Point v -> Bool #

(>=) :: Point v -> Point v -> Bool #

max :: Point v -> Point v -> Point v #

min :: Point v -> Point v -> Point v #

Show v => Show (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

showsPrec :: Int -> Point v -> ShowS #

show :: Point v -> String #

showList :: [Point v] -> ShowS #

Storable v => Storable (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

sizeOf :: Point v -> Int #

alignment :: Point v -> Int #

peekElemOff :: Ptr (Point v) -> Int -> IO (Point v) #

pokeElemOff :: Ptr (Point v) -> Int -> Point v -> IO () #

peekByteOff :: Ptr b -> Int -> IO (Point v) #

pokeByteOff :: Ptr b -> Int -> Point v -> IO () #

peek :: Ptr (Point v) -> IO (Point v) #

poke :: Ptr (Point v) -> Point v -> IO () #

NFData v => NFData (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

rnf :: Point v -> () #

MonoFunctor v => MonoFunctor (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

omap :: (Element (Point v) -> Element (Point v)) -> Point v -> Point v #

MonoPointed v => MonoPointed (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

opoint :: Element (Point v) -> Point v #

Elementwise v => Elementwise (Point v) Source # 
Instance details

Defined in Geomancy.Point

Methods

epoint :: Element (Point v) -> Point v Source #

emap :: (Element (Point v) -> Element (Point v)) -> Point v -> Point v Source #

emap2 :: (Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v Source #

emap3 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v Source #

emap4 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v Source #

emap5 :: (Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v) -> Element (Point v)) -> Point v -> Point v -> Point v -> Point v -> Point v -> Point v Source #

VectorSpace v Float => AffineSpace (Point v) v Float Source # 
Instance details

Defined in Geomancy.Point

Methods

origin :: Point v #

(.+^) :: Point v -> v -> Point v #

(.-^) :: Point v -> v -> Point v #

(.-.) :: Point v -> Point v -> v #

distance :: Point v -> Point v -> Float #

type Element (Point v) Source # 
Instance details

Defined in Geomancy.Point

type Element (Point v) = Element v

class (Floating a, VectorSpace v a) => AffineSpace p v a | p -> v, v -> a where #

Affine Space type relation.

An affine space is a set (type) p, and an associated vector space v over a field a.

Minimal complete definition

origin, (.+^), (.-.)

Methods

(.+^) :: p -> v -> p infix 6 #

Addition of affine point and vector.

(.-^) :: p -> v -> p infix 6 #

Subtraction of affine point and vector.

(.-.) :: p -> p -> v infix 6 #

Subtraction of two points in the affine space, giving a vector.

Instances

Instances details
VectorSpace v Float => AffineSpace (Point v) v Float Source # 
Instance details

Defined in Geomancy.Point

Methods

origin :: Point v #

(.+^) :: Point v -> v -> Point v #

(.-^) :: Point v -> v -> Point v #

(.-.) :: Point v -> Point v -> v #

distance :: Point v -> Point v -> Float #

class (Eq a, Floating a) => VectorSpace v a | v -> a where #

Vector space type relation.

A vector space is a set (type) closed under addition and multiplication by a scalar. The type of the scalar is the field of the vector space, and it is said that v is a vector space over a.

The encoding uses a type class |VectorSpace| v a, where v represents the type of the vectors and a represents the types of the scalars.

Minimal complete definition

zeroVector, (*^), (^+^), dot

Methods

zeroVector :: v #

Vector with no magnitude (unit for addition).

(*^) :: a -> v -> v infixr 9 #

Multiplication by a scalar.

(^/) :: v -> a -> v infixl 9 #

Division by a scalar.

(^+^) :: v -> v -> v infixl 6 #

Vector addition

(^-^) :: v -> v -> v infixl 6 #

Vector subtraction

negateVector :: v -> v #

Vector negation. Addition with a negated vector should be same as subtraction.

dot :: v -> v -> a infix 7 #

Dot product (also known as scalar or inner product).

For two vectors, mathematically represented as a = a1,a2,...,an and b = b1,b2,...,bn, the dot product is a . b = a1*b1 + a2*b2 + ... + an*bn.

Some properties are derived from this. The dot product of a vector with itself is the square of its magnitude (norm), and the dot product of two orthogonal vectors is zero.

norm :: v -> a #

Vector's norm (also known as magnitude).

For a vector represented mathematically as a = a1,a2,...,an, the norm is the square root of a1^2 + a2^2 + ... + an^2.

normalize :: v -> v #

Return a vector with the same origin and orientation (angle), but such that the norm is one (the unit for multiplication by a scalar).

Instances

Instances details
VectorSpace Double Double

Vector space instance for Doubles, with Double scalars.

Instance details

Defined in Data.VectorSpace

VectorSpace Float Float

Vector space instance for Floats, with Float scalars.

Instance details

Defined in Data.VectorSpace

VectorSpace Vec2 Float Source # 
Instance details

Defined in Geomancy.Vec2

VectorSpace Packed Float Source # 
Instance details

Defined in Geomancy.Vec3

VectorSpace Vec3 Float Source # 
Instance details

Defined in Geomancy.Vec3

VectorSpace Vec4 Float Source # 
Instance details

Defined in Geomancy.Vec4

(Eq a, Floating a) => VectorSpace (a, a) a

Vector space instance for pairs of Floating point numbers.

Instance details

Defined in Data.VectorSpace

Methods

zeroVector :: (a, a) #

(*^) :: a -> (a, a) -> (a, a) #

(^/) :: (a, a) -> a -> (a, a) #

(^+^) :: (a, a) -> (a, a) -> (a, a) #

(^-^) :: (a, a) -> (a, a) -> (a, a) #

negateVector :: (a, a) -> (a, a) #

dot :: (a, a) -> (a, a) -> a #

norm :: (a, a) -> a #

normalize :: (a, a) -> (a, a) #

(Eq a, Floating a) => VectorSpace (a, a, a) a

Vector space instance for triplets of Floating point numbers.

Instance details

Defined in Data.VectorSpace

Methods

zeroVector :: (a, a, a) #

(*^) :: a -> (a, a, a) -> (a, a, a) #

(^/) :: (a, a, a) -> a -> (a, a, a) #

(^+^) :: (a, a, a) -> (a, a, a) -> (a, a, a) #

(^-^) :: (a, a, a) -> (a, a, a) -> (a, a, a) #

negateVector :: (a, a, a) -> (a, a, a) #

dot :: (a, a, a) -> (a, a, a) -> a #

norm :: (a, a, a) -> a #

normalize :: (a, a, a) -> (a, a, a) #

(Eq a, Floating a) => VectorSpace (a, a, a, a) a

Vector space instance for tuples with four Floating point numbers.

Instance details

Defined in Data.VectorSpace

Methods

zeroVector :: (a, a, a, a) #

(*^) :: a -> (a, a, a, a) -> (a, a, a, a) #

(^/) :: (a, a, a, a) -> a -> (a, a, a, a) #

(^+^) :: (a, a, a, a) -> (a, a, a, a) -> (a, a, a, a) #

(^-^) :: (a, a, a, a) -> (a, a, a, a) -> (a, a, a, a) #

negateVector :: (a, a, a, a) -> (a, a, a, a) #

dot :: (a, a, a, a) -> (a, a, a, a) -> a #

norm :: (a, a, a, a) -> a #

normalize :: (a, a, a, a) -> (a, a, a, a) #

(Eq a, Floating a) => VectorSpace (a, a, a, a, a) a

Vector space instance for tuples with five Floating point numbers.

Instance details

Defined in Data.VectorSpace

Methods

zeroVector :: (a, a, a, a, a) #

(*^) :: a -> (a, a, a, a, a) -> (a, a, a, a, a) #

(^/) :: (a, a, a, a, a) -> a -> (a, a, a, a, a) #

(^+^) :: (a, a, a, a, a) -> (a, a, a, a, a) -> (a, a, a, a, a) #

(^-^) :: (a, a, a, a, a) -> (a, a, a, a, a) -> (a, a, a, a, a) #

negateVector :: (a, a, a, a, a) -> (a, a, a, a, a) #

dot :: (a, a, a, a, a) -> (a, a, a, a, a) -> a #

norm :: (a, a, a, a, a) -> a #

normalize :: (a, a, a, a, a) -> (a, a, a, a, a) #

(^*) :: VectorSpace v a => v -> a -> v Source #

lerp :: VectorSpace v a => v -> v -> a -> v Source #

quadrance :: VectorSpace v a => v -> a Source #