Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
General matrix storage and operations.
Synopsis
- data Mat4
- rowMajor :: Coercible Mat4 a => Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> a
- withRowMajor :: Coercible a Mat4 => a -> (Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> r) -> r
- toListRowMajor :: Coercible a Mat4 => a -> [Float]
- toListRowMajor2d :: Coercible a Mat4 => a -> [[Float]]
- fromRowMajor2d :: forall t a. (Foldable t, Coercible Mat4 a) => t (t Float) -> Maybe a
- colMajor :: Coercible Mat4 a => Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> a
- withColMajor :: Coercible a Mat4 => a -> (Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> r) -> r
- toListColMajor :: Coercible a Mat4 => a -> [Float]
- toListColMajor2d :: Coercible a Mat4 => a -> [[Float]]
- identity :: Mat4
- transpose :: Mat4 -> Mat4
- inverse :: (Coercible Mat4 a, Coercible Mat4 a) => a -> a
- pointwise :: Mat4 -> Mat4 -> (Float -> Float -> Float) -> Mat4
- zipWith :: (Float -> Float -> c) -> Mat4 -> Mat4 -> [c]
- matrixProduct :: Mat4 -> Mat4 -> Mat4
- scalarMultiply :: Float -> Mat4 -> Mat4
- (!*) :: Coercible a Mat4 => a -> Vec4 -> Vec4
Documentation
Instances
Storable Mat4 Source # | |
Defined in Geomancy.Mat4 | |
Monoid Mat4 Source # | |
Semigroup Mat4 Source # | |
Show Mat4 Source # | |
NFData Mat4 Source # | |
Defined in Geomancy.Mat4 | |
Block Mat4 Source # | |
Defined in Geomancy.Mat4 alignment140 :: proxy Mat4 -> Int Source # sizeOf140 :: proxy Mat4 -> Int Source # isStruct :: proxy Mat4 -> Bool Source # read140 :: MonadIO m => Ptr a -> Diff a Mat4 -> m Mat4 Source # write140 :: MonadIO m => Ptr a -> Diff a Mat4 -> Mat4 -> m () Source # alignment430 :: proxy Mat4 -> Int Source # sizeOf430 :: proxy Mat4 -> Int Source # read430 :: MonadIO m => Ptr a -> Diff a Mat4 -> m Mat4 Source # write430 :: MonadIO m => Ptr a -> Diff a Mat4 -> Mat4 -> m () Source # sizeOfPacked :: proxy Mat4 -> Int Source # readPacked :: MonadIO m => Ptr a -> Diff a Mat4 -> m Mat4 Source # writePacked :: MonadIO m => Ptr a -> Diff a Mat4 -> Mat4 -> m () Source # |
rowMajor :: Coercible Mat4 a => Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> a Source #
Construct Mat4
from row
notation.
withRowMajor :: Coercible a Mat4 => a -> (Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> r) -> r Source #
Reduce Mat4
with a function with row
notation of arguments.
fromRowMajor2d :: forall t a. (Foldable t, Coercible Mat4 a) => t (t Float) -> Maybe a Source #
Build a Mat4 from a list-of-lists kind of container with row-major ordering of elements.
fromRowMajor2d (Linear.mkTransformation dir pos) :: Transform
colMajor :: Coercible Mat4 a => Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> a Source #
Construct a Mat4
from column
notation.
withColMajor :: Coercible a Mat4 => a -> (Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> Float -> r) -> r Source #
Reduce Mat4
with a function with column
notation for arguments.
I
, the identity matrix.
Neutral element of its monoid, so you can use mempty
.