From http://www.jwz.org/xscreensaver/xscreensaver-5.27.tar.gz
[xscreensaver] / hacks / glx / extrusion-twistoid.c
index 1dce69dbf4945af9319908427126242e2e6a16c2..82034afcfabe2d4facd6d20368163b6a9286ab9d 100644 (file)
  * -- port to glut Linas Vepstas March 1995
  */
 
-/* required include files */
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "extrusion.h"
 
 #include <math.h>
 #include <stdlib.h>
-#include <GL/gl.h>
-#include <GL/glut.h>
-#ifdef HAVE_GLE3
-#include <GL/gle.h>
-#else
-#include <GL/tube.h>
-#endif
 
 /* Some <math.h> files do not define M_PI... */
 #ifndef M_PI
 #define M_PI 3.14159265358979323846
 #endif
 
+/* controls shape of object */
 extern float lastx;
 extern float lasty;
-extern float rot_x;
-extern float rot_y;
-extern float rot_z;
 
 #define OPENGL_10
 /* =========================================================== */
@@ -132,8 +120,10 @@ static void init_tripples (void)
    }
 
    /* now, a zig-zag corrugation */
-   while (i< NUM_TWIS_PTS) {
+   while (1) {
+      if (i >= NUM_TWIS_PTS) break;
       TWIST ((-10.0 +(double) i), 0.0);
+      if (i >= NUM_TWIS_PTS) break;
       TWIST ((-9.5 +(double) i), 1.0);
    }
 }
@@ -184,14 +174,13 @@ void DrawStuff_twistoid (void) {
 #ifdef OPENGL_10
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
+  glFrontFace(GL_CW);  /* jwz */
+
    /* set up some matrices so that the object spins with the mouse */
    glPushMatrix ();
-   glTranslatef (0.0, 0.0, -80.0);
-   glRotatef(rot_x, 1, 0, 0);
-   glRotatef(rot_y, 0, 1, 0);
-   glRotatef(rot_z, 0, 0, 1);
-/*     glRotated (43.0, 1.0, 0.0, 0.0); */
-/*     glRotated (43.0, 0.0, 1.0, 0.0); */
+/* glTranslatef (0.0, 0.0, -80.0); */
+/* glRotated (43.0, 1.0, 0.0, 0.0); */
+/* glRotated (43.0, 0.0, 1.0, 0.0); */
    glScaled (1.8, 1.8, 1.8);
    gleTwistExtrusion (NUM_TWIS_PTS, twistation, twist_normal, 
               NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);