13
#include "functions.h"
14
#include "xfunctions.h"
20
GLfloat ctrlpoints[4][4][3] = {
21
{{-1.5, -1.5, 4.0}, {-0.5, -1.5, 2.0},
22
{0.5, -1.5, -1.0}, {1.5, -1.5, 2.0}},
23
{{-1.5, -0.5, 1.0}, {-0.5, -0.5, 3.0},
24
{0.5, -0.5, 0.0}, {1.5, -0.5, -1.0}},
25
{{-1.5, 0.5, 4.0}, {-0.5, 0.5, 0.0},
26
{0.5, 0.5, 3.0}, {1.5, 0.5, 4.0}},
27
{{-1.5, 1.5, -2.0}, {-0.5, 1.5, -2.0},
28
{0.5, 1.5, 0.0}, {1.5, 1.5, -1.0}}
33
GLfloat ambient[] = { 0.2, 0.2, 0.2, 1.0 };
34
GLfloat position[] = { 0.0, 0.0, 2.0, 1.0 };
35
GLfloat mat_diffuse[] = { 0.6, 0.6, 0.6, 1.0 };
36
GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };
37
GLfloat mat_shininess[] = { 50.0 };
39
glEnable(GL_LIGHTING);
42
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
43
glLightfv(GL_LIGHT0, GL_POSITION, position);
44
glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, mat_diffuse);
45
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, mat_specular);
46
glMaterialfv(GL_FRONT_AND_BACK,GL_SHININESS, mat_shininess);
52
glClearColor (0.0, 0.0, 0.0, 1.0);
53
glMap2f(GL_MAP2_VERTEX_3, 0, 1, 3, 4,
54
0, 1, 12, 4, &ctrlpoints[0][0][0]);
55
glEnable(GL_MAP2_VERTEX_3);
56
glEnable(GL_DEPTH_TEST);
57
glEnable(GL_AUTO_NORMAL);
58
glMapGrid2f(PRECISION, 0.0, 1.0, PRECISION, 0.0, 1.0);
66
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
67
glColor3f(1.0, 1.0, 1.0);
69
glRotatef(85.0+pos, 1.0, 1.0, 1.0);
71
glEvalMesh2(GL_FILL, 0, PRECISION, 0, PRECISION);
73
for (j = 0; j <= 8; j++) {
74
glBegin(GL_LINE_STRIP);
75
for (i = 0; i <= 30; i++)
76
glEvalCoord2f((GLfloat)i/30.0, (GLfloat)j/8.0);
78
glBegin(GL_LINE_STRIP);
79
for (i = 0; i <= 30; i++)
80
glEvalCoord2f((GLfloat)j/8.0, (GLfloat)i/30.0);
89
void myReshape(GLsizei w, GLsizei h)
91
glViewport(0, 0, w, h);
92
glMatrixMode(GL_PROJECTION);
95
glOrtho(-5.0, 5.0, -5.0*(GLfloat)h/(GLfloat)w,
96
5.0*(GLfloat)h/(GLfloat)w, -5.0, 5.0);
98
glOrtho(-5.0*(GLfloat)w/(GLfloat)h,
99
5.0*(GLfloat)w/(GLfloat)h, -5.0, 5.0, -5.0, 5.0);
100
glMatrixMode(GL_MODELVIEW);
107
int main(int argc, char *argv[]) {
115
OpenGLWindow(&dpy, &cx, &win, 800, 600);
123
glXSwapBuffers(dpy,win);
125
for (i=0;i<360;i++) {
128
glXSwapBuffers(dpy,win);