+static int
+draw_sheet(float *tex)
+{
+ int polys = 0;
+ glBegin( wire ? GL_LINE_LOOP : GL_QUADS );
+
+ glNormal3f( 0, -1, 0 );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick);
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ polys++;
+
+ if (wire) { glEnd(); glBegin (GL_LINE_LOOP); }
+
+ /* back */
+ glNormal3f( 0, 1, 0 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick);
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ polys++;
+
+ if (wire) { glEnd(); return polys; }
+
+ /* 4 edges!!! weee.... */
+ glNormal3f( 0, 0, -1 );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ polys++;
+ glNormal3f( 0, 0, 1 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ polys++;
+ glNormal3f( 1, 0, 0 );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[1]);
+ glVertex3f( 1-half_thick, -half_thick, 1-half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[2], tex[3]);
+ glVertex3f( 1-half_thick, half_thick, half_thick );
+ polys++;
+ glNormal3f( -1, 0, 0 );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, half_thick, 1-half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[3]);
+ glVertex3f( half_thick, -half_thick, half_thick );
+ glTexCoord2f(tex[0], tex[1]);
+ glVertex3f( half_thick, -half_thick, 1-half_thick );
+ polys++;
+ glEnd();
+
+ return polys;
+}
+
+/* Reserve memory for the randsheet */