LINE PROGRAMS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//===============================================//
// Title : 3D Object in OpenGL
// Programmer : V R E M P I R E
// Date : Wednesday, February 1, 2006
//===============================================//

#include <stdio.h>
#include <gl/glut.h>

GLdouble V0[] = { 0.0, 0.0, 0.0};
GLdouble V1[] = { 1.0f, 0.0, 0.0};
GLdouble V2[] = { 1.0f, 1.0f, 0.0};
GLdouble V3[] = { 0.0, 1.0f, 0.0};
GLdouble V4[] = { 0.0, 0.0, -1.0f};
GLdouble V5[] = { 1.0f, 0.0, -1.0f};
GLdouble V6[] = { 1.0f, 1.0f, -1.0f};
GLdouble V7[] = { 0.0, 1.0f, -1.0f};


void Display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glLoadIdentity();
    gluLookAt(3.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    glColor3f(0.0, 1.0, 0.0);

    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

    glBegin(GL_QUADS);
        glVertex3dv(V0); glVertex3dv(V1); glVertex3dv(V2); glVertex3dv(V3);       
// Surface 1
        glVertex3dv(V1); glVertex3dv(V5); glVertex3dv(V6); glVertex3dv(V2);       
// Surface 2
        glVertex3dv(V5); glVertex3dv(V4); glVertex3dv(V7); glVertex3dv(V6);       
// Surface 3
        glVertex3dv(V4); glVertex3dv(V0); glVertex3dv(V3); glVertex3dv(V7);       
// Surface 4
        glVertex3dv(V3); glVertex3dv(V2); glVertex3dv(V6); glVertex3dv(V7);       
// Surface 5
        glVertex3dv(V0); glVertex3dv(V4); glVertex3dv(V5); glVertex3dv(V1);       
// Surface 6
    glEnd();


    glutSwapBuffers();
}

void Init(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
}

void Resize(int width, int height)
{
    glViewport(0, 0, width, height);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(60.0, width/height, 0.1, 1000.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("3D Object in OpenGL");
    Init();
    glutDisplayFunc(Display);
    glutReshapeFunc(Resize);
    glutMainLoop();
    return 0;
}