|
|
|
Description |
OpenGL support, including Vertex, TexCoord, etc instances for Vec2, Vec3 and Vec4.
|
|
Synopsis |
|
type GLflt = GLdouble | | glflt :: Double -> GLflt | | unflt :: GLflt -> Double | | class ToOpenGLMatrix m where | | | class FromOpenGLMatrix m where | | | setMatrix :: ToOpenGLMatrix m => Maybe MatrixMode -> m -> IO () | | getMatrix :: FromOpenGLMatrix m => Maybe MatrixMode -> IO m | | matrix :: (ToOpenGLMatrix m, FromOpenGLMatrix m) => Maybe MatrixMode -> StateVar m | | currentMatrix :: (ToOpenGLMatrix m, FromOpenGLMatrix m) => StateVar m | | multMatrix :: ToOpenGLMatrix m => m -> IO () | | radianToDegrees :: RealFrac a => a -> a | | degreesToRadian :: Floating a => a -> a | | glRotate :: Double -> Vec3 -> IO () | | glTranslate :: Vec3 -> IO () | | glScale3 :: Vec3 -> IO () | | glScale :: Double -> IO () | | orthoMatrix :: (Double, Double) -> (Double, Double) -> (Double, Double) -> Mat4 | | orthoMatrix2 :: Vec3 -> Vec3 -> Mat4 | | frustumMatrix :: (Double, Double) -> (Double, Double) -> (Double, Double) -> Mat4 | | frustumMatrix2 :: Vec3 -> Vec3 -> Mat4 | | inverseFrustumMatrix :: (Double, Double) -> (Double, Double) -> (Double, Double) -> Mat4 | | class VertexAttrib' a where | |
|
|
Documentation |
|
|
|
|
|
|
|
class ToOpenGLMatrix m where | Source |
|
There should be a big warning here about the different conventions,
hidden transpositions, and all the confusion this will inevitably cause...
As it stands,
glRotate t1 axis1 >> glRotate t2 axis2 >> glRotate t3 axis3
has the same result as
multMatrix (rotMatrixProj4 t3 axis3 .*. rotMatrixProj4 t2 axis2 .*. rotMatrixProj4 t1 axis1)
because at the interface of OpenGL and this library there is a transposition
to compensate for the different conventions. (This transposition is implicit
in the code, because the way the matrices are stored in the memory is also
different: OpenGL stores them column-major, and we store them row-major).
| | Methods | | | Instances | |
|
|
class FromOpenGLMatrix m where | Source |
|
| Methods | | | Instances | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The angle is in radians. (WARNING: OpenGL uses degrees!)
|
|
|
|
|
|
|
|
|
:: (Double, Double) | (left,right)
| -> (Double, Double) | (bottom,top)
| -> (Double, Double) | (near,far)
| -> Mat4 | | "Orthogonal projecton" matrix, a la OpenGL
(the corresponding functionality is removed in OpenGL 3.1)
|
|
|
|
:: Vec3 | (left,top,near)
| -> Vec3 | (right,bottom,far)
| -> Mat4 | | The same as orthoMatrix, but with a different parametrization.
|
|
|
|
:: (Double, Double) | (left,right)
| -> (Double, Double) | (bottom,top)
| -> (Double, Double) | (near,far)
| -> Mat4 | | "Perspective projecton" matrix, a la OpenGL
(the corresponding functionality is removed in OpenGL 3.1).
|
|
|
|
|
|
|
|
|
class VertexAttrib' a where | Source |
|
| Methods | | | Instances | |
|
|
Produced by Haddock version 2.4.1 |