nuclear@29: #ifndef __APPLE__ nuclear@29: #include nuclear@29: #else nuclear@29: #include nuclear@29: #endif nuclear@29: nuclear@29: #include "teapot.h" nuclear@29: #include "teapot_data.h" nuclear@29: nuclear@29: static void draw_patch(struct vec3 *bez_cp, int *index, int flip, int useg, int vseg, float scale); nuclear@29: nuclear@29: int patch_subdivision = 6; nuclear@29: nuclear@29: void bezier_teapot(float scale) nuclear@29: { nuclear@29: int i; nuclear@29: nuclear@29: scale /= 2.0; nuclear@29: nuclear@29: for(i=0; i 3.14) { nuclear@29: n.x = n.y = 0.0f; nuclear@29: n.z = 1.0f; nuclear@29: } else if(pt.z < 0.00001) { nuclear@29: n.x = n.y = 0.0f; nuclear@29: n.z = -1.0f; nuclear@29: } else { nuclear@29: n = bezier_patch_norm(cp, u + uoffs[flip][k] * du, v + voffs[k] * dv); nuclear@29: } nuclear@29: nuclear@29: glTexCoord2f(u, v); nuclear@29: glNormal3f(n.x, n.y, n.z); nuclear@29: glVertex3f(pt.x * scale, pt.y * scale, pt.z * scale); nuclear@29: } nuclear@29: nuclear@29: v += dv; nuclear@29: } nuclear@29: u += du; nuclear@29: } nuclear@29: nuclear@29: glEnd(); nuclear@29: }