module Cube ( draw ) where import qualified Graphics.Rendering.OpenGL as GL draw :: GL.GLfloat -> IO () draw s = do GL.scale s s s GL.renderPrimitive GL.Quads $ do -- front GL.color red GL.normal (GL.Normal3 z z p1) GL.vertex (GL.Vertex3 n1 n1 p1) GL.vertex (GL.Vertex3 p1 n1 p1) GL.vertex (GL.Vertex3 p1 p1 p1) GL.vertex (GL.Vertex3 n1 p1 p1) -- back GL.color red GL.normal (GL.Normal3 z z n1) GL.vertex (GL.Vertex3 n1 n1 n1) GL.vertex (GL.Vertex3 n1 p1 n1) GL.vertex (GL.Vertex3 p1 p1 n1) GL.vertex (GL.Vertex3 p1 n1 n1) -- top GL.color green GL.normal (GL.Normal3 z p1 z) GL.vertex (GL.Vertex3 n1 p1 n1) GL.vertex (GL.Vertex3 n1 p1 p1) GL.vertex (GL.Vertex3 p1 p1 p1) GL.vertex (GL.Vertex3 p1 p1 n1) -- bottom GL.color green GL.normal (GL.Normal3 z n1 z) GL.vertex (GL.Vertex3 n1 n1 n1) GL.vertex (GL.Vertex3 p1 n1 n1) GL.vertex (GL.Vertex3 p1 n1 p1) GL.vertex (GL.Vertex3 n1 n1 p1) -- right GL.color blue GL.normal (GL.Normal3 p1 z z) GL.vertex (GL.Vertex3 p1 n1 n1) GL.vertex (GL.Vertex3 p1 p1 n1) GL.vertex (GL.Vertex3 p1 p1 p1) GL.vertex (GL.Vertex3 p1 n1 p1) -- left GL.color blue GL.normal (GL.Normal3 n1 z z) GL.vertex (GL.Vertex3 n1 n1 n1) GL.vertex (GL.Vertex3 n1 n1 p1) GL.vertex (GL.Vertex3 n1 p1 p1) GL.vertex (GL.Vertex3 n1 p1 n1) red, green, blue :: GL.Color4 GL.GLfloat red = GL.Color4 1 0 0 1 green = GL.Color4 0 1 0 1 blue = GL.Color4 0 0 1 1 z, n1, p1 :: GL.GLfloat z = 0 n1 = -1 p1 = 1