module ColorCube where

import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT  as GLUT

import Squares
import StateUtil

locally = preservingMatrix

colorCube n = do
  locally $ do
    currentColor $= Color4 1 0 0 1
    translate$Vector3 0 0 (-n/2)
    square n
  locally $ do
    currentColor $= Color4 0 1 0 1
    translate$Vector3 0 0 (n/2)
    square n
  locally $ do
    currentColor $= Color4 0 0 1 1
    translate$Vector3 (n/2) 0 0
    rotate 90 $Vector3 0 (1::GLfloat) 0
    square n
  locally $ do
    currentColor $= Color4 1 1 0 1
    translate$Vector3 (-n/2) 0 0
    rotate 90 $Vector3 0 (1::GLfloat) 0
    square n
  locally $ do
    currentColor $= Color4 0 1 1 1
    translate$Vector3 0 (-n/2) 0
    rotate 90 $Vector3 (1::GLfloat) 0 0
    square n
  locally $ do
    currentColor $= Color4 1 1 1 1
    translate$Vector3 0 (n/2) 0
    rotate 90 $Vector3 (1::GLfloat) 0 0
    square n
