# Drawing a door for a (very simple) house

I’m an ultra-begginner when it comes to programming in OpenGL. I’m taking a summer Graphics class and so far we’ve learned how to make a cube 1 unit long centered at 0,0,0 and mess with the camera angles and all that. The first major project is to do the front part of a house (a door and a window… no roof yet). I’ve obviously gotten it to run with just the “cube” house, but when I try to put the door on there it doesn’t work. Havn’t even tried a window yet.

I’ll try looking for example model house files to compare with, but if anyone can figure out what I’m doing wrong any help would be appreciated.

``````

#include <stdlib.h>

#ifdef __APPLE_
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

typedef float vertex[3];

vertex vertices[]={
{-0.5,        -0.5,       0.5},//0 (first 8 verticies for cube)
{-0.5,        0.5,       0.5},//1
{0.5,        0.5,       0.5},//2
{0.5,        -0.5,       0.5},//3
{-0.5,        -0.5,       -0.5},//4
{-0.5,        0.5,       -0.5},//5
{0.5,        0.5,      -0.5},//6
{0.5,        -0.5,     -0.5},//7
{-3/28,	-13/28, 	0.5},//8 (start door) bottom left
{3/28,		-13/28,        0.5},//9	bottom right
{3/28,	  0,	0.5},//10   top right
{-3/28,0,	0.5}}//11   top left
;

static GLfloat theta[] = {0.0,0.0,0.0};

void face( int a, int b, int c, int d)
{
glBegin(GL_POLYGON);
glNormal3fv(vertices[a]);
glVertex3fv(vertices[a]);
glVertex3fv(vertices[b]);
glVertex3fv(vertices[c]);
glVertex3fv(vertices[d]);
glEnd();
}

void MYcube()
{
glColor3f(1.0,0.0,0.0);         //red),
face(0,3,2,1);
glColor3f(0.0,1.0,0.0);         //green),
face(4,5,6,7);
glColor3f(0.0,0.75388,1.0);      //blue),
face(5,1,2,6);
glColor3f(1.0,0.2,0.7);       //deep pink),
face(4,7,3,0);
glColor3f(1.0,1.0,0.0);     // yellow),
face(2,3,7,6);
glColor3f(1.0,0.75,0.0);     // orange).
face(5,4,0,1);
glColor3f(0.0,0.0,0.0);         //red),
face(8,9,10,11);
}

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

gluLookAt(0.0 ,0.0 ,1.0,
0.0 ,0.0 ,0.0,
0.0 ,1.0 ,0.0);
MYcube();

glFlush();

}

void myReshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
if (w <= h)
glOrtho(-1.0, 1.0, -1.0 * (GLfloat) h / (GLfloat) w,
1.0 * (GLfloat) h / (GLfloat) w, -5.0, 5.0);
else
glOrtho(-2.0 * (GLfloat) w / (GLfloat) h,
2.0 * (GLfloat) w / (GLfloat) h, -2.0, 2.0, -10.0, 10.0);
glMatrixMode(GL_MODELVIEW);

glutPostRedisplay();
}

void  main(int argc, char **argv)
{

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutCreateWindow("Chambers House");
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glEnable(GL_DEPTH_TEST);
glClearColor (1.0, 1.0, 1.0, 1.0);
glutMainLoop();
}

``````

When I build this I just see the red face of the front, even though I added 4 more vertices and made a face with a different color than the front. I’m sure it’s some beginner’s mistake I’m making.