glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -16.0f);
//glRotatef(zrot, 0.0f, 0.0f, 1.0f);
glRotatef(xrot, 1.0f, 0.0f, 0.0f);
glRotatef(yrot, 0.0f, 1.0f, 0.0f);
glRotatef(zrot, 0.0f, 0.0f, 1.0f);
glColor3f(0.8f, 0.0f, 0.0f);
glBegin(GL_QUADS);
//front surface
glVertex3f(0.5f, 1.5f, 0.5f);
glVertex3f(1.5f, 1.5f, 0.5f);
glVertex3f(1.5f, 2.5f, 0.5f);
glVertex3f(0.5f, 2.5f, 0.5f);
glVertex3f(0.5f, 2.5f, 0.5f);
glVertex3f(-0.5f, 2.5f, 0.5f);
glVertex3f(-0.5f, -2.5f, 0.5f);
glVertex3f(0.5f, -2.5f, 0.5f);
glVertex3f(-0.5f, -1.5f, 0.5f);
glVertex3f(-1.5f, -1.5f, 0.5f);
glVertex3f(-1.5f, -2.5f, 0.5f);
glVertex3f(-0.5f, -2.5f, 0.5f);
glVertex3f(-1.5f, 0.5f, 0.5f);
glVertex3f(-1.5f, 1.5f, 0.5f);
glVertex3f(-2.5f, 1.5f, 0.5f);
glVertex3f(-2.5f, 0.5f, 0.5f);
glVertex3f(-2.5f, 0.5f, 0.5f);
glVertex3f(-2.5f, -0.5f, 0.5f);
glVertex3f(2.5f, -0.5f, 0.5f);
glVertex3f(2.5f, 0.5f, 0.5f);
glVertex3f(1.5f, -0.5f, 0.5f);
glVertex3f(1.5f, -1.5f, 0.5f);
glVertex3f(2.5f, -1.5f, 0.5f);
glVertex3f(2.5f, -0.5f, 0.5f);
//back surface
glVertex3f(0.5f, 1.5f, -0.5f);
glVertex3f(1.5f, 1.5f, -0.5f);
glVertex3f(1.5f, 2.5f, -0.5f);
glVertex3f(0.5f, 2.5f, -0.5f);
glVertex3f(0.5f, 2.5f, -0.5f);
glVertex3f(-0.5f, 2.5f, -0.5f);
glVertex3f(-0.5f, -2.5f, -0.5f);
glVertex3f(0.5f, -2.5f, -0.5f);
glVertex3f(-0.5f, -1.5f, -0.5f);
glVertex3f(-1.5f, -1.5f, -0.5f);
glVertex3f(-1.5f, -2.5f, -0.5f);
glVertex3f(-0.5f, -2.5f, -0.5f);
glVertex3f(-1.5f, 0.5f, -0.5f);
glVertex3f(-1.5f, 1.5f, -0.5f);
glVertex3f(-2.5f, 1.5f, -0.5f);
glVertex3f(-2.5f, 0.5f, -0.5f);
glVertex3f(-2.5f, 0.5f, -0.5f);
glVertex3f(-2.5f, -0.5f, -0.5f);
glVertex3f(2.5f, -0.5f, -0.5f);
glVertex3f(2.5f, 0.5f, -0.5f);
glVertex3f(1.5f, -0.5f, -0.5f);
glVertex3f(1.5f, -1.5f, -0.5f);
glVertex3f(2.5f, -1.5f, -0.5f);
glVertex3f(2.5f, -0.5f, -0.5f);
//side surface
glVertex3f(0.5f, 0.5f, 0.5f);
glVertex3f(0.5f, 0.5f, -0.5f);
glVertex3f(0.5f, 1.5f, -0.5f);
glVertex3f(0.5f, 1.5f, 0.5f);
glVertex3f(0.5f, 1.5f, 0.5f);
glVertex3f(0.5f, 1.5f, -0.5f);
glVertex3f(1.5f, 1.5f, -0.5f);
glVertex3f(1.5f, 1.5f, 0.5f);
glVertex3f(1.5f, 1.5f, 0.5f);
glVertex3f(1.5f, 1.5f, -0.5f);
glVertex3f(1.5f, 2.5f, -0.5f);
glVertex3f(1.5f, 2.5f, 0.5f);
glVertex3f(1.5f, 2.5f, 0.5f);
glVertex3f(1.5f, 2.5f, -0.5f);
glVertex3f(-0.5f, 2.5f, -0.5f);
glVertex3f(-0.5f, 2.5f, 0.5f);
glVertex3f(-0.5f, 2.5f, 0.5f);
glVertex3f(-0.5f, 2.5f, -0.5f);
glVertex3f(-0.5f, 0.5f, -0.5f);
glVertex3f(-0.5f, 0.5f, 0.5f);
// mirror
glVertex3f(-0.5f, -0.5f, 0.5f);
glVertex3f(-0.5f, -0.5f, -0.5f);
glVertex3f(-0.5f, -1.5f, -0.5f);
glVertex3f(-0.5f, -1.5f, 0.5f);
glVertex3f(-0.5f, -1.5f, 0.5f);
glVertex3f(-0.5f, -1.5f, -0.5f);
glVertex3f(-1.5f, -1.5f, -0.5f);
glVertex3f(-1.5f, -1.5f, 0.5f);
glVertex3f(-1.5f, -1.5f, 0.5f);
glVertex3f(-1.5f, -1.5f, -0.5f);
glVertex3f(-1.5f, -2.5f, -0.5f);
glVertex3f(-1.5f, -2.5f, 0.5f);
glVertex3f(-1.5f, -2.5f, 0.5f);
glVertex3f(-1.5f, -2.5f, -0.5f);
glVertex3f(0.5f, -2.5f, -0.5f);
glVertex3f(0.5f, -2.5f, 0.5f);
glVertex3f(0.5f, -2.5f, 0.5f);
glVertex3f(0.5f, -2.5f, -0.5f);
glVertex3f(0.5f, -0.5f, -0.5f);
glVertex3f(0.5f, -0.5f, 0.5f);
// another surface
glVertex3f(-1.5f, 0.5f, 0.5f);
glVertex3f(-0.5f, 0.5f, 0.5f);
glVertex3f(-0.5f, 0.5f, -0.5f);
glVertex3f(-1.5f, 0.5f, -0.5f);
glVertex3f(-1.5f, 0.5f, 0.5f);
glVertex3f(-1.5f, 0.5f, -0.5f);
glVertex3f(-1.5f, 1.5f, -0.5f);
glVertex3f(-1.5f, 1.5f, 0.5f);
glVertex3f(-1.5f, 1.5f, 0.5f);
glVertex3f(-1.5f, 1.5f, -0.5f);
glVertex3f(-2.5f, 1.5f, -0.5f);
glVertex3f(-2.5f, 1.5f, 0.5f);
glVertex3f(-2.5f, 1.5f, 0.5f);
glVertex3f(-2.5f, 1.5f, -0.5f);
glVertex3f(-2.5f, -0.5f, -0.5f);
glVertex3f(-2.5f, -0.5f, 0.5f);
glVertex3f(-2.5f, -0.5f, 0.5f);
glVertex3f(-2.5f, -0.5f, -0.5f);
glVertex3f(-0.5f, -0.5f, -0.5f);
glVertex3f(-0.5f, -0.5f, 0.5f);
//mirror
glVertex3f(1.5f, -0.5f, 0.5f);
glVertex3f(0.5f, -0.5f, 0.5f);
glVertex3f(0.5f, -0.5f, -0.5f);
glVertex3f(1.5f, -0.5f, -0.5f);
glVertex3f(1.5f, -0.5f, 0.5f);
glVertex3f(1.5f, -0.5f, -0.5f);
glVertex3f(1.5f, -1.5f, -0.5f);
glVertex3f(1.5f, -1.5f, 0.5f);
glVertex3f(1.5f, -1.5f, 0.5f);
glVertex3f(1.5f, -1.5f, -0.5f);
glVertex3f(2.5f, -1.5f, -0.5f);
glVertex3f(2.5f, -1.5f, 0.5f);
glVertex3f(2.5f, -1.5f, 0.5f);
glVertex3f(2.5f, -1.5f, -0.5f);
glVertex3f(2.5f, 0.5f, -0.5f);
glVertex3f(2.5f, 0.5f, 0.5f);
glVertex3f(2.5f, 0.5f, 0.5f);
glVertex3f(2.5f, 0.5f, -0.5f);
glVertex3f(0.5f, 0.5f, -0.5f);
glVertex3f(0.5f, 0.5f, 0.5f);
glEnd();
glFlush ();