summaryrefslogtreecommitdiffstats
path: root/hacks/glx/extrusion-twistoid.c
diff options
context:
space:
mode:
Diffstat (limited to 'hacks/glx/extrusion-twistoid.c')
-rw-r--r--hacks/glx/extrusion-twistoid.c215
1 files changed, 0 insertions, 215 deletions
diff --git a/hacks/glx/extrusion-twistoid.c b/hacks/glx/extrusion-twistoid.c
deleted file mode 100644
index 82034af..0000000
--- a/hacks/glx/extrusion-twistoid.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * twistoid.c
- *
- * FUNCTION:
- * Show extrusion of open contours. Also, show how torsion is applied.
- *
- * HISTORY:
- * -- linas Vepstas October 1991
- * -- heavily modified to draw corrugated surface, Feb 1993, Linas
- * -- modified to demo twistoid March 1993
- * -- port to glut Linas Vepstas March 1995
- */
-
-#include "extrusion.h"
-
-#include <math.h>
-#include <stdlib.h>
-
-/* 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;
-
-#define OPENGL_10
-/* =========================================================== */
-
-#define NUM_TOID1_PTS 5
-static double toid1_points[NUM_TOID1_PTS][3];
-static float toid1_colors [NUM_TOID1_PTS][3];
-static double toid1_twists [NUM_TOID1_PTS];
-
-#define TSCALE (6.0)
-
-#define TPTS(x,y) { \
- toid1_points[i][0] = TSCALE * (x); \
- toid1_points[i][1] = TSCALE * (y); \
- toid1_points[i][2] = TSCALE * (0.0); \
- i++; \
-}
-
-#define TCOLS(r,g,b) { \
- toid1_colors[i][0] = (r); \
- toid1_colors[i][1] = (g); \
- toid1_colors[i][2] = (b); \
- i++; \
-}
-
-#define TXZERO() { \
- toid1_twists[i] = 0.0; \
- i++; \
-}
-
-static void init_toid1_line (void)
-{
- int i;
-
- i=0;
- TPTS (-1.1, 0.0);
- TPTS (-1.0, 0.0);
- TPTS (0.0, 0.0);
- TPTS (1.0, 0.0);
- TPTS (1.1, 0.0);
-
- i=0;
- TCOLS (0.8, 0.8, 0.5);
- TCOLS (0.8, 0.4, 0.5);
- TCOLS (0.8, 0.8, 0.3);
- TCOLS (0.4, 0.4, 0.5);
- TCOLS (0.8, 0.8, 0.5);
-
- i=0;
- TXZERO ();
- TXZERO ();
- TXZERO ();
- TXZERO ();
- TXZERO ();
-}
-
-/* =========================================================== */
-
-#define SCALE 0.6
-#define TWIST(x,y) { \
- double ax, ay, alen; \
- twistation[i][0] = SCALE * (x); \
- twistation[i][1] = SCALE * (y); \
- if (i!=0) { \
- ax = twistation[i][0] - twistation[i-1][0]; \
- ay = twistation[i][1] - twistation[i-1][1]; \
- alen = 1.0 / sqrt (ax*ax + ay*ay); \
- ax *= alen; ay *= alen; \
- twist_normal [i-1][0] = - ay; \
- twist_normal [i-1][1] = ax; \
- } \
- i++; \
-}
-
-#define NUM_TWIS_PTS (20)
-
-static double twistation [NUM_TWIS_PTS][2];
-static double twist_normal [NUM_TWIS_PTS][2];
-
-static void init_tripples (void)
-{
- int i;
- double angle;
- double co, si;
-
- /* outline of extrusion */
- i=0;
- /* first, draw a semi-curcular "hump" */
- while (i< 11) {
- angle = M_PI * ((double) i) / 10.0;
- co = cos (angle);
- si = sin (angle);
- TWIST ((-7.0 -3.0*co), 1.8*si);
- }
-
- /* now, a zig-zag corrugation */
- 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);
- }
-}
-
-
-/* =========================================================== */
-
-#define V3F(x,y,z) { \
- float vvv[3]; \
- vvv[0] = x; vvv[1] = y; vvv[2] = z; v3f (vvv); \
-}
-
-#define N3F(x,y,z) { \
- float nnn[3]; \
- nnn[0] = x; nnn[1] = y; nnn[2] = z; n3f (nnn); \
-}
-
-/* =========================================================== */
-
-void DrawStuff_twistoid (void) {
- int i;
-
- toid1_twists[2] = (lastx-121.0) / 8.0;
-
- i=3;
-/*
- TPTS (1.0, lasty /400.0);
- TPTS (1.1, 1.1 * lasty / 400.0);
-*/
- TPTS (1.0, -(lasty-121.0) /200.0);
- TPTS (1.1, -1.1 * (lasty-121.0) / 200.0);
-
-#ifdef IBM_GL_32
- rotate (230, 'x');
- rotate (230, 'y');
- scale (1.8, 1.8, 1.8);
-
- if (mono_color) {
- RGBcolor (178, 178, 204);
- twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal,
- NULL, NUM_TOID1_PTS, toid1_points, NULL, toid1_twists);
- } else {
- twist_extrusion (NUM_TWIS_PTS, twistation, twist_normal,
- NULL, NUM_TOID1_PTS, toid1_points, toid1_colors, toid1_twists);
- }
-#endif
-
-#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); */
-/* 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);
- glPopMatrix ();
-#endif
-
-}
-
-/* =========================================================== */
-
-void InitStuff_twistoid (void)
-{
- int js;
-
- init_toid1_line ();
- init_tripples ();
-
-#ifdef IBM_GL_32
- js = getjoinstyle ();
- js &= ~TUBE_CONTOUR_CLOSED;
- setjoinstyle (js);
-#endif
-
-#ifdef OPENGL_10
- js = gleGetJoinStyle ();
- js &= ~TUBE_CONTOUR_CLOSED;
- gleSetJoinStyle (js);
-#endif
-
-}
-
-/* ------------------ end of file -------------------- */