-}
-
-
-static void
-unit_tube (Bool wire)
-{
- int i;
- GLfloat d3 = 0.2075;
-
- glPushMatrix();
-
- if (!wire)
- glShadeModel(GL_SMOOTH);
-
- glFrontFace(GL_CCW);
-
- for (i = 0; i < 8; i++)
- {
- glNormal3f(1, 0, 0);
- glBegin(wire ? GL_LINE_LOOP : GL_QUADS);
- glVertex3f(0.5, 0.0, -d3); glVertex3f(0.5, 1.0, -d3);
- glVertex3f(0.5, 1.0, d3); glVertex3f(0.5, 0.0, d3);
- glEnd();
- glRotatef(45, 0, 1, 0);
- }
-
- if (! wire)
- {
- glNormal3f(0, -1, 0);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(0, 0, 0);
- glVertex3f(-d3, 0, -0.5); glVertex3f( d3, 0, -0.5);
- glVertex3f( 0.5, 0, -d3); glVertex3f( 0.5, 0, d3);
- glVertex3f( d3, 0, 0.5); glVertex3f(-d3, 0, 0.5);
- glVertex3f(-0.5, 0, d3); glVertex3f(-0.5, 0, -d3);
- glVertex3f(-d3, 0, -0.5); glVertex3f( d3, 0, -0.5);
-
- glEnd();
-
- glTranslatef(0, 1, 0);
-
- glNormal3f(0, 1, 0);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(0, 0, 0);
- glVertex3f(-0.5, 0, -d3); glVertex3f(-0.5, 0, d3);
- glVertex3f(-d3, 0, 0.5); glVertex3f( d3, 0, 0.5);
- glVertex3f( 0.5, 0, d3); glVertex3f( 0.5, 0, -d3);
- glVertex3f( d3, 0, -0.5); glVertex3f(-d3, 0, -0.5);
- glVertex3f(-0.5, 0, -d3); glVertex3f(-0.5, 0, d3);
- glEnd();
- }
-
- glPopMatrix();
-}
-
-
-static void
-tube (GLfloat x1, GLfloat y1,
- GLfloat x2, GLfloat y2,
- GLfloat z,
- GLfloat diameter,
- Bool wire)
-{
- GLfloat length, rot;
-
- if (y1 == y2) y2 += 0.01; /* waah... */