-- 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.1 -- | 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 :: (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 rotation matrix for turning toward a point. Useful for targeting -- a camera to a specific point. rotationLookAt :: (Floating a) => Vec3 a -> Vec3 a -> Vec3 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. 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