diff options
| author | Simon Rettberg | 2024-09-06 14:42:37 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2024-09-06 14:42:37 +0200 |
| commit | badef32037f52f79abc1f1440b786cd71afdf270 (patch) | |
| tree | 412b792d4cab4a7a110db82fcf74fe8a1ac55ec1 /hacks/glx/tangram_shapes.c | |
| parent | Delete pre-6.00 files (diff) | |
| download | xscreensaver-master.tar.gz xscreensaver-master.tar.xz xscreensaver-master.zip | |
Diffstat (limited to 'hacks/glx/tangram_shapes.c')
| -rw-r--r-- | hacks/glx/tangram_shapes.c | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/hacks/glx/tangram_shapes.c b/hacks/glx/tangram_shapes.c deleted file mode 100644 index 2e8bab2..0000000 --- a/hacks/glx/tangram_shapes.c +++ /dev/null @@ -1,225 +0,0 @@ -/* tangram, Copyright (c) 2005 Jeremy English <jhe@jeremyenglish.org> - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - */ - -#include "screenhackI.h" -#include "tangram_shapes.h" - -#define small_scale ( 1 ) -#define large_scale ( 2 ) -#define medium_scale ( 1.414213562 ) - -#define alpha (0.05) - -static void -tri_45_90(int wire) -{ - GLfloat vertices[][3] = { - {0, alpha, 0}, - {0, alpha, 1}, - {1, alpha, 0}, - {0, -alpha, 0}, - {0, -alpha, 1}, - {1, -alpha, 0} - }; - - glBegin((wire) ? GL_LINE_LOOP : GL_TRIANGLES); - - glNormal3f(0, 1, 0); - glVertex3fv(vertices[0]); - glNormal3f(0, 1, 0); - glVertex3fv(vertices[2]); - glNormal3f(0, 1, 0); - glVertex3fv(vertices[1]); - - glNormal3f(0, -1, 0); - glVertex3fv(vertices[3]); - glNormal3f(0, -1, 0); - glVertex3fv(vertices[4]); - glNormal3f(0, -1, 0); - glVertex3fv(vertices[5]); - glEnd(); - - glBegin((wire) ? GL_LINE_LOOP : GL_QUADS); - glNormal3f(1, 0, 1); - glVertex3fv(vertices[2]); - glNormal3f(1, 0, 1); - glVertex3fv(vertices[5]); - glNormal3f(1, 0, 1); - glVertex3fv(vertices[4]); - glNormal3f(1, 0, 1); - glVertex3fv(vertices[1]); - - glNormal3f(-1, 0, 0); - glVertex3fv(vertices[0]); - glNormal3f(-1, 0, 0); - glVertex3fv(vertices[1]); - glNormal3f(-1, 0, 0); - glVertex3fv(vertices[4]); - glNormal3f(-1, 0, 0); - glVertex3fv(vertices[3]); - - glNormal3f(0, 0, -1); - glVertex3fv(vertices[0]); - glNormal3f(0, 0, -1); - glVertex3fv(vertices[3]); - glNormal3f(0, 0, -1); - glVertex3fv(vertices[5]); - glNormal3f(0, 0, -1); - glVertex3fv(vertices[2]); - glEnd(); -} - -static void -unit_cube(int wire) -{ - glBegin((wire) ? GL_LINE_LOOP : GL_QUADS); - - - glNormal3f(0.0f, 1.0f, 0.0f); - glVertex3f(0.0f, alpha, 0.0f); - glVertex3f(0.0f, alpha, 1.0f); - glVertex3f(1.0f, alpha, 1.0f); - glVertex3f(1.0f, alpha, 0.0f); - - glNormal3f(0.0f, 0.0f, 1.0f); - glVertex3f(0.0f, -alpha, 1.0f); - glVertex3f(1.0f, -alpha, 1.0f); - glVertex3f(1.0f, alpha, 1.0f); - glVertex3f(0.0f, alpha, 1.0f); - - glNormal3f(0.0f, 0.0f, -1.0f); - glVertex3f(0.0f, -alpha, 0.0f); - glVertex3f(0.0f, alpha, 0.0f); - glVertex3f(1.0f, alpha, 0.0f); - glVertex3f(1.0f, -alpha, 0.0f); - - glNormal3f(1.0f, 0.0f, 0.0f); - glVertex3f(1.0f, -alpha, 0.0f); - glVertex3f(1.0f, alpha, 0.0f); - glVertex3f(1.0f, alpha, 1.0f); - glVertex3f(1.0f, -alpha, 1.0f); - - glNormal3f(-1.0f, 0.0f, 0.0f); - glVertex3f(0.0f, -alpha, 0.0f); - glVertex3f(0.0f, -alpha, 1.0f); - glVertex3f(0.0f, alpha, 1.0f); - glVertex3f(0.0f, alpha, 0.0f); - - glNormal3f(0.0f, -1.0f, 0.0f); - glVertex3f(0.0f, -alpha, 0.0f); - glVertex3f(1.0f, -alpha, 0.0f); - glVertex3f(1.0f, -alpha, 1.0f); - glVertex3f(0.0f, -alpha, 1.0f); - - glEnd(); -} - -static void -unit_rhomboid(int wire) -{ - glBegin((wire) ? GL_LINE_LOOP : GL_QUADS); - - glNormal3f(0.0f, 1.0f, 0.0f); - glVertex3f(0, alpha, 0); - glVertex3f(1, alpha, 1); - glVertex3f(1, alpha, 2); - glVertex3f(0, alpha, 1); - - glNormal3f(0.0f, -1.0f, 0.0f); - glVertex3f(0, -alpha, 0); - glVertex3f(0, -alpha, 1); - glVertex3f(1, -alpha, 2); - glVertex3f(1, -alpha, 1); - - glNormal3f(-1.0f, 0.0f, 0.0f); - glVertex3f(0, alpha, 0); - glVertex3f(0, alpha, 1); - glVertex3f(0, -alpha, 1); - glVertex3f(0, -alpha, 0); - - - glNormal3f(0.0f, 0.0f, 1.0f); - glVertex3f(0, alpha, 1); - glVertex3f(1, alpha, 2); - glVertex3f(1, -alpha, 2); - glVertex3f(0, -alpha, 1); - - glNormal3f(1.0f, 0.0f, 0.0f); - glVertex3f(1, alpha, 1); - glVertex3f(1, -alpha, 1); - glVertex3f(1, -alpha, 2); - glVertex3f(1, alpha, 2); - - glNormal3f(0.0f, 0.0f, 1.0f); - glVertex3f(0, alpha, 0); - glVertex3f(0, -alpha, 0); - glVertex3f(1, -alpha, 1); - glVertex3f(1, alpha, 1); - - glEnd(); -} - -/* All of the pieces have the same thickness so all of the Y values are the same */ - -GLuint -tangram_get_sm_tri_dl(int wire) -{ - GLuint triangle = glGenLists(1); - glNewList(triangle, GL_COMPILE); - glScalef(small_scale, small_scale, small_scale); - tri_45_90(wire); - glEndList(); - return triangle; -} - -GLuint -tangram_get_lg_tri_dl(int wire) -{ - GLuint triangle = glGenLists(1); - glNewList(triangle, GL_COMPILE); - glScalef(large_scale, small_scale, large_scale); - tri_45_90(wire); - glEndList(); - return triangle; -} - -GLuint -tangram_get_md_tri_dl(int wire) -{ - GLuint triangle = glGenLists(1); - glNewList(triangle, GL_COMPILE); - glScalef(medium_scale, small_scale, medium_scale); - tri_45_90(wire); - glEndList(); - return triangle; -} - -GLuint -tangram_get_square_dl(int wire) -{ - GLuint square = glGenLists(1); - glNewList(square, GL_COMPILE); - glScalef(small_scale, small_scale, small_scale); - unit_cube(wire); - glEndList(); - return square; -} - -GLuint -tangram_get_rhomboid_dl(int wire) -{ - GLuint rhomboid = glGenLists(1); - glNewList(rhomboid, GL_COMPILE); - glScalef(small_scale, small_scale, small_scale); - unit_rhomboid(wire); - glEndList(); - return rhomboid; -} |
