Safe Haskell | None |
---|
Classic 4x4 projective matrices, encoding the affine transformations of R^3. Our convention is that they are intended for multiplication on the right, that is, they are of the form
_____ [ | | 0 ] [ | 3x3 | 0 ] [ |_____| 0 ] [ p q r 1 ]
Please note that by default, OpenGL stores the matrices (in memory) by columns, while we
store them by rows; but OpenGL also use the opposite convention (so the OpenGL projective matrices
are intended for multiplication on the left). So in effect, they are the same when stored in the memory,
say with poke :: Ptr Mat4 -> Mat4 -> IO ()
.
Warning: The naming conventions will probably change in the future.
- rotMatrixProj4' :: (Floating a, Projective a Vec3 Mat3 Ortho3 b Proj4) => a -> Normal3 a -> Proj4 a
- rotMatrixProj4 :: Floating a => a -> Vec3 a -> Proj4 a
- rotateProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 a
- rotateAfterProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 a
- rotateBeforeProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 a
- scalingUniformProj4 :: Floating a => a -> Proj4 a
- scaleBeforeProj4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 a
- scaleAfterProj4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 a
- translate4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 a
- translateAfter4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 a
- translateBefore4 :: (Floating a, Extend a Mat3 Mat4, RightModule (Vec3 a) (Mat3 a)) => Vec3 a -> Proj4 a -> Proj4 a
Documentation
rotMatrixProj4' :: (Floating a, Projective a Vec3 Mat3 Ortho3 b Proj4) => a -> Normal3 a -> Proj4 aSource
rotMatrixProj4 :: Floating a => a -> Vec3 a -> Proj4 aSource
rotateProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 aSource
synonym for rotateAfterProj4
rotateAfterProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 aSource
Synonym for m -> m .*. rotMatrixProj4 angle axis
.
rotateBeforeProj4 :: Floating a => a -> Normal3 a -> Proj4 a -> Proj4 aSource
Synonym for m -> rotMatrixProj4 angle axis .*. m
.
scalingUniformProj4 :: Floating a => a -> Proj4 aSource
scaleBeforeProj4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 aSource
Equivalent to m -> scaling v .*. m
.
scaleAfterProj4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 aSource
Equivalent to m -> m .*. scaling v
.
translate4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 aSource
Synonym for translateAfter4
translateAfter4 :: Floating a => Vec3 a -> Proj4 a -> Proj4 aSource
Equivalent to m -> m .*. translation v
.