-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Extends the Vec package with some 4x4 transform matrices -- -- This package adds some 4x4 transform matrices to the Vec package, that -- is useful in graphics applications, such as those written with the -- GPipe package. Specifically, it adds translation, scaling, rotation, -- perspective projection and orthogonal projection matrices. @package Vec-Transform @version 1.0.0 -- | Some 4x4 transformation matrices, using a right handed coordinate -- system. These matrices are used by multiplying vectors from the right. module Data.Vec.LinAlg.Transform3D -- | A 4x4 translation matrix translation :: (Num a) => Vec3 a -> Mat44 a -- | A 4x4 rotation matrix for a rotation around the X axis rotationX :: (Floating a) => a -> Mat44 a -- | A 4x4 rotation matrix for a rotation around the Y axis rotationY :: (Floating a) => a -> Mat44 a -- | A 4x4 rotation matrix for a rotation around the Z axis rotationZ :: (Floating a) => a -> Mat44 a -- | A 4x4 rotation matrix for a rotation around an arbitrary normalized -- vector rotationVec :: (Floating a) => Vec3 a -> a -> Mat44 a -- | A 4x4 rotation matrix from the euler angles yaw pitch and roll. Could -- be useful in e.g. first person shooter games, rotationEuler :: (Floating a) => Vec3 a -> Mat44 a -- | A 4x4 rotation matrix from a normalized quaternion. Useful for most -- free flying rotations, such as airplanes. rotationQuat :: (Num a) => Vec4 a -> Mat44 a -- | A 4x4 scaling matrix scaling :: (Num a) => Vec3 a -> Mat44 a -- | A perspective projection matrix for a right handed coordinate system -- looking down negative z perspective :: (Floating a) => a -> a -> a -> a -> Mat44 a -- | An orthogonal projection matrix for a right handed coordinate system -- looking down negative z orthogonal :: (Fractional a) => a -> a -> Vec2 a -> Mat44 a