GLfloat CubeVertex[] = { // TOP OF CUBE STARTING BACK RIGHT GOING ANTI CLOCKWISE 1.0f, 1.0f, -1.0f, // back top right VO - V2 -1.0f, 1.0f, -1.0f, // back top left V3 - V5 -1.0f, 1.0f, 1.0f, // front top left V6 - V8 1.0f, 1.0f, 1.0f, // front top right V9 - V11 // BOTTOM OF CUBE STARTING BACK RIGHT GOING ANTI CLOCKWISE 1.0f, -1.0f, 1.0f, // bottom front right V12 - V14 -1.0f, -1.0f, 1.0f, // bottom front left V15 - V17 -1.0f, -1.0f, -1.0f, // bottom back left V18 - V20 1.0f, -1.0f, -1.0f // bottom back right V21 - V23 }; void drawCube() { glMatrixMode(GL_MODELVIEW); // make sure we are on the model view matrix GLfloat ambient[] = { 1.0f, 1.0f, 1.0f }; // create a white ambience GLfloat diffuse[] = { 1.0f, 1.0f, 1.0f }; // create a white diffuse GLfloat specular[] = { 1.0f, 1.0f, 1.0f }; // create a white specular glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 50.0f); // Have a shiny surface GLfloat thickness = 5.0; // create line thickeness glLineWidth(thickness); // implement edges using lines glBegin(GL_LINES); // Top-face glColor3f(0.0f, 1.0f, 0.0f); // green glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); // Bottom-face glColor3f(1.0f, 0.5f, 0.0f); // orange glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]); glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); // Front-face glColor3f(1.0f, 0.0f, 0.0f); // red glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]);; glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]); glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); // Back-face glColor3f(1.0f, 1.0f, 0.0f); // yellow glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); // Left-face glColor3f(0.0f, 0.0f, 1.0f); // blue glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[3], CubeVertex[4], CubeVertex[5]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[18], CubeVertex[19], CubeVertex[20]); glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]); glVertex3f(CubeVertex[15], CubeVertex[16], CubeVertex[17]); glVertex3f(CubeVertex[6], CubeVertex[7], CubeVertex[8]); // Right-face glColor3f(1.0f, 0.0f, 1.0f); // magenta glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); glVertex3f(CubeVertex[9], CubeVertex[10], CubeVertex[11]); glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); glVertex3f(CubeVertex[12], CubeVertex[13], CubeVertex[14]); glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); glVertex3f(CubeVertex[21], CubeVertex[22], CubeVertex[23]); glVertex3f(CubeVertex[0], CubeVertex[1], CubeVertex[2]); glEnd(); }