-- 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.6 -- | Some 4x4 transformation matrices, using a right handed coordinate -- system. These matrices are used by multiplying vectors from the right. -- -- The projection matrices will produce vectors in a left handed -- coordinate system, i.e. where z goes into the screen. module Data.Vec.LinAlg.Transform3D -- | A 4x4 translation matrix translation :: (Eq a, Show a, 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 :: (Eq a, Show a, 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 rotation matrix for turning toward a point. Useful for targeting -- a camera to a specific point. rotationLookAt :: (Eq a, Show a, Floating a) => Vec3 a -> Vec3 a -> Vec3 a -> Mat44 a -- | A 4x4 scaling matrix scaling :: (Eq a, Show a, Num a) => Vec3 a -> Mat44 a -- | A perspective projection matrix for a right handed coordinate system -- looking down negative z. This will project far plane to z = -- +1 and near plane to z = -1, i.e. into a left handed -- system. perspective :: Floating a => a -> a -> a -> a -> Mat44 a -- | An orthogonal projection matrix for a right handed coordinate system -- looking down negative z. This will project far plane to z = -- +1 and near plane to z = -1, i.e. into a left handed -- system. orthogonal :: Fractional a => a -> a -> Vec2 a -> Mat44 a