#define glColoredVertex(v) glColor3fv(v[1]); \
  glVertex3fv(v[0]);

void colorCube()
{

  
  //Cornors
  //front
  GLfloat ftl[2][3] = {{-1.0,1.0,1.0},{1.0,0.0,1.0}}; //top left
  GLfloat ftr[2][3] = {{1.0,1.0,1.0},{1.0,1.0,1.0}};
  GLfloat fbl[2][3] = {{-1.0,-1.0,1.0},{1.0,0.0,0.0}};
  GLfloat fbr[2][3] = {{1.0,-1.0,1.0},{1.0,1.0,0.0}};
  //back
  GLfloat btl[2][3] = {{-1.0,1.0,-1.0},{0.0,0.0,1.0}}; //top left
  GLfloat btr[2][3] = {{1.0,1.0,-1.0},{0.0,1.0,1.0}};
  GLfloat bbl[2][3] = {{-1.0,-1.0,-1.0},{0.0,0.0,0.0}};
  GLfloat bbr[2][3] = {{1.0,-1.0,-1.0},{0.0,1.0,0.0}};

    //glFrontFace(GL_CCW);
  //front face
  glNormal3f(0.0,0.0,1.0);
  glBegin(GL_QUADS); 
    glColoredVertex(ftl);
    glColoredVertex(fbl);
    glColoredVertex(fbr);
    glColoredVertex(ftr);
    
    
  glEnd();

  /*glFrontFace(GL_CW);*/
  //right face
  glNormal3f(1.0,0.0,0.0);
  glBegin(GL_QUADS);
    glColoredVertex(ftr);
    glColoredVertex(fbr);
    glColoredVertex(bbr);
    glColoredVertex(btr);
   
   
  glEnd();
  
  //left face
  //glFrontFace(GL_CCW);
  glNormal3f(-1.0,0.0,0.0);
  glBegin(GL_QUADS);
    glColoredVertex(ftl);
    glColoredVertex(btl);
    glColoredVertex(bbl);
    glColoredVertex(fbl);
  glEnd();
  
  //glFrontFace(GL_CCW);
  //bottom face
  glNormal3f(0.0,-1.0,0.0);
  glBegin(GL_QUADS);
    glColoredVertex(btl);
    glColoredVertex(btr);
    glColoredVertex(bbr);
    glColoredVertex(bbl);
  glEnd();

  //top face
  glNormal3f(0.0,1.0,0.0);
  glBegin(GL_QUADS);
    glColoredVertex(ftl);
    glColoredVertex(ftr);
    glColoredVertex(btr);
    glColoredVertex(btl);
  glEnd();

  //back face
  glNormal3f(0.0,0.0,-1.0);
  glBegin(GL_QUADS);
    glColoredVertex(fbl);
    glColoredVertex(bbl);
    glColoredVertex(bbr);
    glColoredVertex(fbr);
  glEnd();

}