diff options
Diffstat (limited to 'progs/ggi')
-rw-r--r-- | progs/ggi/asc-view.c | 377 | ||||
-rw-r--r-- | progs/ggi/blah | 2 | ||||
-rw-r--r-- | progs/ggi/blat | 7 | ||||
-rw-r--r-- | progs/ggi/box.asc | 66 | ||||
-rw-r--r-- | progs/ggi/cone.asc | 198 | ||||
-rw-r--r-- | progs/ggi/gears.c | 339 | ||||
-rw-r--r-- | progs/ggi/gears2.c | 390 | ||||
-rw-r--r-- | progs/ggi/sphere.asc | 132 | ||||
-rw-r--r-- | progs/ggi/torus.asc | 264 | ||||
-rw-r--r-- | progs/ggi/tube.asc | 396 |
10 files changed, 0 insertions, 2171 deletions
diff --git a/progs/ggi/asc-view.c b/progs/ggi/asc-view.c deleted file mode 100644 index d37fba9d9f..0000000000 --- a/progs/ggi/asc-view.c +++ /dev/null @@ -1,377 +0,0 @@ -/* - test program for the ggi-mesa driver - - Copyright (C) 1997,1998 Uwe Maurer - uwe_maurer@t-online.de - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#include <sys/time.h> -#include <stdio.h> -#include <string.h> -#include <math.h> -#include <GL/gl.h> -#include <GL/ggimesa.h> -#include <ggi/ggi.h> -#include <stdlib.h> - -ggi_visual_t vis,vis_mem; - -GGIMesaContext ctx; - -int screen_x=GGI_AUTO,screen_y=GGI_AUTO; -ggi_graphtype bpp=GT_AUTO; - -//#define ZBUFFER - -//#define SMOOTH_NORMALS - -void Init() -{ - GLfloat h=(GLfloat)3/4; - GLfloat pos[4]={5,5,-20,0}; - GLfloat specular[4]={.4,.4,.4,1}; - GLfloat diffuse[4]={.3,.3,.3,1}; - GLfloat ambient[4]={.2,.2,.2,1}; - - int err; - - if (ggiInit()<0) - { - printf("ggiInit() failed\n"); - exit(1); - } - ctx=GGIMesaCreateContext(); - if (ctx==NULL) - { - printf("Can't create Context!\n"); - exit(1); - } - - vis=ggiOpen(NULL); - vis_mem=ggiOpen("display-memory",NULL); - if (vis==NULL || vis_mem==NULL) - { - printf("Can't open ggi_visuals!\n"); - exit(1); - } - err=ggiSetGraphMode(vis,screen_x,screen_y,screen_x,screen_y,bpp); - err+=ggiSetGraphMode(vis_mem,screen_x,screen_y,screen_x,screen_y,bpp); - if (err) - { - printf("Can't set %ix%i\n",screen_x,screen_y); - exit(1); - } - - if (GGIMesaSetVisual(ctx,vis_mem,GL_TRUE,GL_FALSE)<0) - { - printf("GGIMesaSetVisual() failed!\n"); - exit(1); - } - - GGIMesaMakeCurrent(ctx); - - glViewport(0,0,screen_x,screen_y); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1,1,-h,h,1,50); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0,0,-9); - glShadeModel(GL_FLAT); - - glFrontFace(GL_CW); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - glLightfv(GL_LIGHT0,GL_POSITION,pos); - - glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse); - glLightfv(GL_LIGHT0,GL_AMBIENT,ambient); - glLightfv(GL_LIGHT0,GL_SPECULAR,specular); - - #ifdef ZBUFFER - glEnable(GL_DEPTH_TEST); - #endif -} - - -#define MAX_VERTS 1000 -#define MAX_TRIS 2000 -#define MAX_LEN 1024 -#define MAX_F 100000000 - -void LoadAsc(GLuint *list,char *file) -{ - FILE *fp; - - GLfloat p[MAX_VERTS][3]; - GLfloat normal[MAX_VERTS][3]; - float ncount[MAX_VERTS]; - int v[MAX_TRIS][3]; - char line[MAX_LEN]; - char *s; - int i,j; - int verts,faces; - GLuint v0,v1,v2; - GLfloat n[3]; - GLfloat len,k; - GLfloat min[3]={MAX_F,MAX_F,MAX_F}; - GLfloat max[3]={-MAX_F,-MAX_F,-MAX_F}; - char *coord_str[]={"X","Z","Y"}; - - fp=fopen(file,"r"); - if (!fp) - { - printf("Can't open %s!\n",file); - exit(1); - } - - while (strncmp(fgets(line,MAX_LEN,fp),"Tri-mesh",8)) ; - - s=strstr(line,":")+1; - verts=atoi(s); - s=strstr(s,":")+1; - faces=atoi(s); - - if (verts>MAX_VERTS) - { - printf("Too many vertices..\n"); - exit(1); - } - - while (strncmp(fgets(line,MAX_LEN,fp),"Vertex list",11)) ; - - for (i=0;i<verts;i++) - { - while (strncmp(fgets(line,MAX_LEN,fp),"Vertex",6)) ; - for (j=0;j<3;j++) - { - s=strstr(line,coord_str[j])+2; - k=atoi(s); - if (k>max[j]) max[j]=k; - if (k<min[j]) min[j]=k; - p[i][j]=k; - } - - } - len=0; - for (i=0;i<3;i++) - { - k=max[i]-min[i]; - if (k>len) {len=k;j=i;} - n[i]=(max[i]+min[i])/2; - } - - len/=2; - - for (i=0;i<verts;i++) - { - for (j=0;j<3;j++) - { - p[i][j]-=n[j]; - p[i][j]/=len; - } - } - - *list=glGenLists(1); - glNewList(*list,GL_COMPILE); - glBegin(GL_TRIANGLES); - - memset(ncount,0,sizeof(ncount)); - memset(normal,0,sizeof(normal)); - - while (strncmp(fgets(line,MAX_LEN,fp),"Face list",9)) ; - for (i=0;i<faces;i++) - { - while (strncmp(fgets(line,MAX_LEN,fp),"Face",4)) ; - s=strstr(line,"A")+2; - v0=v[i][0]=atoi(s); - s=strstr(line,"B")+2; - v1=v[i][1]=atoi(s); - s=strstr(line,"C")+2; - v2=v[i][2]=atoi(s); - n[0]=((p[v1][1]-p[v0][1])*(p[v2][2]-p[v0][2]) - - (p[v1][2]-p[v0][2])*(p[v2][1]-p[v0][1])); - n[1]=((p[v1][2]-p[v0][2])*(p[v2][0]-p[v0][0]) - - (p[v1][0]-p[v0][0])*(p[v2][2]-p[v0][2])); - n[2]=((p[v1][0]-p[v0][0])*(p[v2][1]-p[v0][1]) - - (p[v1][1]-p[v0][1])*(p[v2][0]-p[v0][0])); - len=n[0]*n[0]+n[1]*n[1]+n[2]*n[2]; - len=sqrt(len); - n[0]/=len; - n[1]/=len; - n[2]/=len; - #ifdef SMOOTH_NORMALS - for (j=0;j<3;j++){ - normal[v[i][j]][0]+=n[0]; - normal[v[i][j]][1]+=n[1]; - normal[v[i][j]][2]+=n[2]; - ncount[v[i][j]]++; - } - #else - glNormal3fv(n); - for (j=0;j<3;j++) - glVertex3fv(p[v[i][j]]); - #endif - } - - #ifdef SMOOTH_NORMALS - for (i=0;i<verts;i++) { - for (j=0;j<3;j++) { - normal[i][j]/=ncount[i]; - } - } - for (i=0;i<faces;i++) { - for (j=0;j<3;j++) { - glNormal3f(normal[v[i][j]][0], - normal[v[i][j]][1], - normal[v[i][j]][2]); - glVertex3fv(p[v[i][j]]); - } - } - #endif - - glEnd(); - glEndList(); - fclose(fp); -} - -double Display(GLuint l,int *maxframes) -{ - int x,y; - GLfloat col[]={.25,0,.25,1}; - int frames=0; - struct timeval start,stop; - double len; - GLfloat rotate=0; - - gettimeofday(&start,NULL); - - - while(1) - { - glClearColor(0,0,0,0); - glClearIndex(0); - - #ifdef ZBUFFER - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - #else - glClear(GL_COLOR_BUFFER_BIT); - #endif - - glPushMatrix(); - - glRotatef(30,1,0,0); - glRotatef(rotate/10,0,0,1); - glTranslatef(-6,-4,0); - for (y=0;y<3;y++) - { - glPushMatrix(); - for (x=0;x<5;x++) - { - glPushMatrix(); - glRotatef(rotate,y+1,-x-1,0); - - col[0]=(GLfloat)(x+1)/4; - col[1]=0; - col[2]=(GLfloat)(y+1)/2; - glMaterialfv(GL_FRONT,GL_AMBIENT,col); - glCallList(l); - glPopMatrix(); - glTranslatef(3,0,0); - } - glPopMatrix(); - glTranslatef(0,4,0); - } - glPopMatrix(); - glFinish(); - - ggiPutBox(vis,0,0,screen_x,screen_y,ggiDBGetBuffer(vis,0)->read); - rotate+=10; - frames++; - if (frames==(*maxframes)) break; - - if (ggiKbhit(vis)) - { - *maxframes=frames; - break; - } - } - - gettimeofday(&stop,NULL); - len=(double)(stop.tv_sec-start.tv_sec)+ - (double)(stop.tv_usec-start.tv_usec)/1e6; - return len; -} - -void visible(int vis) -{ - if (vis == GLUT_VISIBLE) - glutIdleFunc(idle); - else - glutIdleFunc(NULL); -} - -int main(int argc, char *argv[]) -{ - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); - - glutInitWindowPosition(0, 0); - glutInitWindowSize(300, 300); - glutCreateWindow("asc-view"); - init(); - - glutDisplayFunc(draw); - glutReshapeFunc(reshape); - glutKeyboardFunc(key); - glutSpecialFunc(special); - glutVisibilityFunc(visible); - - glutMainLoop(); -#if 0 - GLuint l; - char *file; - int maxframes=0; - double len; - - Init(); - - file=(argc>1) ? argv[1] : "asc/box.asc"; - if (argc>2) maxframes=atoi(argv[2]); - - if (argc==1) - { - printf("usage: %s filename.asc\n",argv[0]); - } - - LoadAsc(&l,file); - - len=Display(l,&maxframes); - - printf("\ttime: %.3f sec\n",len); - printf("\tframes: %i\n",maxframes); - printf("\tfps: %.3f \n",(double)maxframes/len); - - GGIMesaDestroyContext(ctx); - ggiClose(vis); - ggiClose(vis_mem); - ggiExit(); -#endif - return 0; -} - diff --git a/progs/ggi/blah b/progs/ggi/blah deleted file mode 100644 index 2c1664d7d0..0000000000 --- a/progs/ggi/blah +++ /dev/null @@ -1,2 +0,0 @@ -Terminating on signal 11 - diff --git a/progs/ggi/blat b/progs/ggi/blat deleted file mode 100644 index 7ff64a9d10..0000000000 --- a/progs/ggi/blat +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -function foobar() { - echo "foo!" -} - -foobar diff --git a/progs/ggi/box.asc b/progs/ggi/box.asc deleted file mode 100644 index f8b23fd85a..0000000000 --- a/progs/ggi/box.asc +++ /dev/null @@ -1,66 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 8 Faces: 12 -Vertex list: -Vertex 0: X: -20 Y: -19.999998 Z: 20.000002 -Vertex 1: X: 20 Y: -19.999998 Z: 20.000002 -Vertex 2: X: 20 Y: 20.000002 Z: 19.999998 -Vertex 3: X: -20 Y: 20.000002 Z: 19.999998 -Vertex 4: X: -20 Y: -20.000002 Z: -19.999998 -Vertex 5: X: 20 Y: -20.000002 Z: -19.999998 -Vertex 6: X: 20 Y: 19.999998 Z: -20.000002 -Vertex 7: X: -20 Y: 19.999998 Z: -20.000002 -Face list: -Face 0: A:0 B:1 C:2 AB:1 BC:1 CA:0 -Smoothing: 1 -Face 1: A:0 B:2 C:3 AB:0 BC:1 CA:1 -Smoothing: 1 -Face 2: A:0 B:4 C:5 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 3: A:0 B:5 C:1 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 4: A:1 B:5 C:6 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 5: A:1 B:6 C:2 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 6: A:2 B:6 C:7 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 7: A:2 B:7 C:3 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 8: A:3 B:7 C:4 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 9: A:3 B:4 C:0 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 10: A:4 B:7 C:6 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 11: A:4 B:6 C:5 AB:0 BC:1 CA:1 -Smoothing: 6 - - - - - - - - - - - - - - - - - - - - - - - - - Page 1 - - - diff --git a/progs/ggi/cone.asc b/progs/ggi/cone.asc deleted file mode 100644 index 5c52285996..0000000000 --- a/progs/ggi/cone.asc +++ /dev/null @@ -1,198 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 34 Faces: 64 -Vertex list: -Vertex 0: X: 60.167416 Y: -87.419525 Z: -53.3088 -Vertex 1: X: 76.70787 Y: -87.419518 Z: -29.84565 -Vertex 2: X: 83.0103 Y: -87.419518 Z: -1.838764 -Vertex 3: X: 78.115204 Y: -87.419518 Z: 26.448057 -Vertex 4: X: 62.767834 Y: -87.41951 Z: 50.708401 -Vertex 5: X: 39.304672 Y: -87.41951 Z: 67.248848 -Vertex 6: X: 11.297782 Y: -87.41951 Z: 73.551254 -Vertex 7: X: -16.989004 Y: -87.41951 Z: 68.656158 -Vertex 8: X: -41.249344 Y: -87.41951 Z: 53.308777 -Vertex 9: X: -57.789783 Y: -87.419518 Z: 29.845612 -Vertex 10: X: -64.092194 Y: -87.419518 Z: 1.838721 -Vertex 11: X: -59.197079 Y: -87.419518 Z: -26.448097 -Vertex 12: X: -43.849678 Y: -87.419525 Z: -50.708427 -Vertex 13: X: -20.386503 Y: -87.419525 Z: -67.248856 -Vertex 14: X: 7.62039 Y: -87.419525 Z: -73.551239 -Vertex 15: X: 35.907204 Y: -87.419525 Z: -68.656105 -Vertex 16: X: 101.684875 Y: 94.590591 Z: -96.955391 -Vertex 17: X: 131.767838 Y: 94.590591 Z: -54.281792 -Vertex 18: X: 143.230377 Y: 94.590599 Z: -3.344275 -Vertex 19: X: 134.327423 Y: 94.590607 Z: 48.102379 -Vertex 20: X: 106.414383 Y: 94.590607 Z: 92.225876 -Vertex 21: X: 63.740765 Y: 94.590607 Z: 122.3088 -Vertex 22: X: 12.803238 Y: 94.590614 Z: 133.771301 -Vertex 23: X: -38.643349 Y: 94.590607 Z: 124.868355 -Vertex 24: X: -82.766846 Y: 94.590607 Z: 96.955307 -Vertex 25: X: -112.849762 Y: 94.590607 Z: 54.281677 -Vertex 26: X: -124.312256 Y: 94.590599 Z: 3.344152 -Vertex 27: X: -115.409271 Y: 94.590591 Z: -48.102493 -Vertex 28: X: -87.496201 Y: 94.590591 Z: -92.225967 -Vertex 29: X: -44.822552 Y: 94.590591 Z: -122.308861 -Vertex 30: X: 6.114983 Y: 94.590584 Z: -133.771332 -Vertex 31: X: 57.561623 Y: 94.590591 Z: -124.868301 -Vertex 32: X: 9.459057 Y: -87.419518 Z: 0.000008 -Vertex 33: X: 9.459057 Y: 94.590599 Z: -0.000008 -Face list: -Face 0: A:0 B:1 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 1: A:1 B:2 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 2: A:2 B:3 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 3: A:3 B:4 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 4: A:4 B:5 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 5: A:5 B:6 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 6: A:6 B:7 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 7: A:7 B:8 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 8: A:8 B:9 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 9: A:9 B:10 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 10: A:10 B:11 C:32 AB:1 BC:0 CA:0 - - Page 1 - - - -Smoothing: 1 -Face 11: A:11 B:12 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 12: A:12 B:13 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 13: A:13 B:14 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 14: A:14 B:15 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 15: A:15 B:0 C:32 AB:1 BC:0 CA:0 -Smoothing: 1 -Face 16: A:0 B:16 C:17 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 17: A:0 B:17 C:1 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 18: A:1 B:17 C:18 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 19: A:1 B:18 C:2 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 20: A:2 B:18 C:19 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 21: A:2 B:19 C:3 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 22: A:3 B:19 C:20 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 23: A:3 B:20 C:4 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 24: A:4 B:20 C:21 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 25: A:4 B:21 C:5 AB:0 BC:1 CA:1 -Smoothing: 6 -Face 26: A:5 B:21 C:22 AB:1 BC:1 CA:0 -Smoothing: 7 -Face 27: A:5 B:22 C:6 AB:0 BC:1 CA:1 -Smoothing: 7 -Face 28: A:6 B:22 C:23 AB:1 BC:1 CA:0 -Smoothing: 8 -Face 29: A:6 B:23 C:7 AB:0 BC:1 CA:1 -Smoothing: 8 -Face 30: A:7 B:23 C:24 AB:1 BC:1 CA:0 -Smoothing: 9 -Face 31: A:7 B:24 C:8 AB:0 BC:1 CA:1 -Smoothing: 9 -Face 32: A:8 B:24 C:25 AB:1 BC:1 CA:0 -Smoothing: 10 -Face 33: A:8 B:25 C:9 AB:0 BC:1 CA:1 -Smoothing: 10 -Face 34: A:9 B:25 C:26 AB:1 BC:1 CA:0 -Smoothing: 11 -Face 35: A:9 B:26 C:10 AB:0 BC:1 CA:1 -Smoothing: 11 -Face 36: A:10 B:26 C:27 AB:1 BC:1 CA:0 -Smoothing: 12 -Face 37: A:10 B:27 C:11 AB:0 BC:1 CA:1 -Smoothing: 12 -Face 38: A:11 B:27 C:28 AB:1 BC:1 CA:0 -Smoothing: 13 -Face 39: A:11 B:28 C:12 AB:0 BC:1 CA:1 -Smoothing: 13 -Face 40: A:12 B:28 C:29 AB:1 BC:1 CA:0 -Smoothing: 14 - - Page 2 - - - -Face 41: A:12 B:29 C:13 AB:0 BC:1 CA:1 -Smoothing: 14 -Face 42: A:13 B:29 C:30 AB:1 BC:1 CA:0 -Smoothing: 15 -Face 43: A:13 B:30 C:14 AB:0 BC:1 CA:1 -Smoothing: 15 -Face 44: A:14 B:30 C:31 AB:1 BC:1 CA:0 -Smoothing: 16 -Face 45: A:14 B:31 C:15 AB:0 BC:1 CA:1 -Smoothing: 16 -Face 46: A:15 B:31 C:16 AB:1 BC:1 CA:0 -Smoothing: 17 -Face 47: A:15 B:16 C:0 AB:0 BC:1 CA:1 -Smoothing: 17 -Face 48: A:16 B:33 C:17 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 49: A:17 B:33 C:18 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 50: A:18 B:33 C:19 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 51: A:19 B:33 C:20 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 52: A:20 B:33 C:21 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 53: A:21 B:33 C:22 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 54: A:22 B:33 C:23 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 55: A:23 B:33 C:24 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 56: A:24 B:33 C:25 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 57: A:25 B:33 C:26 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 58: A:26 B:33 C:27 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 59: A:27 B:33 C:28 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 60: A:28 B:33 C:29 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 61: A:29 B:33 C:30 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 62: A:30 B:33 C:31 AB:0 BC:0 CA:1 -Smoothing: 18 -Face 63: A:31 B:33 C:16 AB:0 BC:0 CA:1 -Smoothing: 18 - - - - - - - - - - - - - - - - - Page 3 - - - diff --git a/progs/ggi/gears.c b/progs/ggi/gears.c deleted file mode 100644 index 2b3231d8ae..0000000000 --- a/progs/ggi/gears.c +++ /dev/null @@ -1,339 +0,0 @@ - -/* - * 3-D gear wheels. This program is in the public domain. - * - * Brian Paul - */ - -/* Conversion to GLUT by Mark J. Kilgard */ - -#include <math.h> -#include <stdlib.h> -#include <stdio.h> -#include <GL/glut.h> - -#ifndef M_PI -#define M_PI 3.14159265 -#endif - -static GLint T0 = 0; -static GLint Frames = 0; - - -/** - - Draw a gear wheel. You'll probably want to call this function when - building a display list since we do a lot of trig here. - - Input: inner_radius - radius of hole at center - outer_radius - radius at center of teeth - width - width of gear - teeth - number of teeth - tooth_depth - depth of tooth - - **/ - -static void -gear(GLfloat inner_radius, GLfloat outer_radius, GLfloat width, - GLint teeth, GLfloat tooth_depth) -{ - GLint i; - GLfloat r0, r1, r2; - GLfloat angle, da; - GLfloat u, v, len; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth / 2.0; - r2 = outer_radius + tooth_depth / 2.0; - - da = 2.0 * M_PI / teeth / 4.0; - - glShadeModel(GL_FLAT); - - glNormal3f(0.0, 0.0, 1.0); - - /* draw front face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - if (i < teeth) { - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); - } - } - glEnd(); - - /* draw front sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); - } - glEnd(); - - glNormal3f(0.0, 0.0, -1.0); - - /* draw back face */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - if (i < teeth) { - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - } - } - glEnd(); - - /* draw back sides of teeth */ - glBegin(GL_QUADS); - da = 2.0 * M_PI / teeth / 4.0; - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - } - glEnd(); - - /* draw outward faces of teeth */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i < teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - - glVertex3f(r1 * cos(angle), r1 * sin(angle), width * 0.5); - glVertex3f(r1 * cos(angle), r1 * sin(angle), -width * 0.5); - u = r2 * cos(angle + da) - r1 * cos(angle); - v = r2 * sin(angle + da) - r1 * sin(angle); - len = sqrt(u * u + v * v); - u /= len; - v /= len; - glNormal3f(v, -u, 0.0); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), width * 0.5); - glVertex3f(r2 * cos(angle + da), r2 * sin(angle + da), -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), width * 0.5); - glVertex3f(r2 * cos(angle + 2 * da), r2 * sin(angle + 2 * da), -width * 0.5); - u = r1 * cos(angle + 3 * da) - r2 * cos(angle + 2 * da); - v = r1 * sin(angle + 3 * da) - r2 * sin(angle + 2 * da); - glNormal3f(v, -u, 0.0); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), width * 0.5); - glVertex3f(r1 * cos(angle + 3 * da), r1 * sin(angle + 3 * da), -width * 0.5); - glNormal3f(cos(angle), sin(angle), 0.0); - } - - glVertex3f(r1 * cos(0), r1 * sin(0), width * 0.5); - glVertex3f(r1 * cos(0), r1 * sin(0), -width * 0.5); - - glEnd(); - - glShadeModel(GL_SMOOTH); - - /* draw inside radius cylinder */ - glBegin(GL_QUAD_STRIP); - for (i = 0; i <= teeth; i++) { - angle = i * 2.0 * M_PI / teeth; - glNormal3f(-cos(angle), -sin(angle), 0.0); - glVertex3f(r0 * cos(angle), r0 * sin(angle), -width * 0.5); - glVertex3f(r0 * cos(angle), r0 * sin(angle), width * 0.5); - } - glEnd(); - -} - -static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; -static GLint gear1, gear2, gear3; -static GLfloat angle = 0.0; - -static void -draw(void) -{ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glPushMatrix(); - glRotatef(view_rotx, 1.0, 0.0, 0.0); - glRotatef(view_roty, 0.0, 1.0, 0.0); - glRotatef(view_rotz, 0.0, 0.0, 1.0); - - glPushMatrix(); - glTranslatef(-3.0, -2.0, 0.0); - glRotatef(angle, 0.0, 0.0, 1.0); - glCallList(gear1); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(3.1, -2.0, 0.0); - glRotatef(-2.0 * angle - 9.0, 0.0, 0.0, 1.0); - glCallList(gear2); - glPopMatrix(); - - glPushMatrix(); - glTranslatef(-3.1, 4.2, 0.0); - glRotatef(-2.0 * angle - 25.0, 0.0, 0.0, 1.0); - glCallList(gear3); - glPopMatrix(); - - glPopMatrix(); - - glutSwapBuffers(); - - Frames++; - { - GLint t = glutGet(GLUT_ELAPSED_TIME); - if (t - T0 >= 5000) { - GLfloat seconds = (t - T0) / 1000.0; - GLfloat fps = Frames / seconds; - printf("%d frames in %g seconds = %g FPS\n", Frames, seconds, fps); - T0 = t; - Frames = 0; - } - } -} - - -static void -idle(void) -{ - angle += 2.0; - glutPostRedisplay(); -} - -/* change view angle, exit upon ESC */ -/* ARGSUSED1 */ -static void -key(unsigned char k, int x, int y) -{ - switch (k) { - case 'z': - view_rotz += 5.0; - break; - case 'Z': - view_rotz -= 5.0; - break; - case 27: /* Escape */ - exit(0); /* FIXME: Shutdown and free resources cleanly in ggiglut */ - break; - default: - return; - } - glutPostRedisplay(); -} - -/* change view angle */ -/* ARGSUSED1 */ -static void -special(int k, int x, int y) -{ - switch (k) { - case GLUT_KEY_UP: - view_rotx += 5.0; - break; - case GLUT_KEY_DOWN: - view_rotx -= 5.0; - break; - case GLUT_KEY_LEFT: - view_roty += 5.0; - break; - case GLUT_KEY_RIGHT: - view_roty -= 5.0; - break; - default: - return; - } - glutPostRedisplay(); -} - -/* new window size or exposure */ -static void -reshape(int width, int height) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - glViewport(0, 0, (GLint) width, (GLint) height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum(-1.0, 1.0, -h, h, 5.0, 60.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0.0, 0.0, -40.0); -} - -static void -init(void) -{ - static GLfloat pos[4] = - {5.0, 5.0, 10.0, 0.0}; - static GLfloat red[4] = - {0.8, 0.1, 0.0, 1.0}; - static GLfloat green[4] = - {0.0, 0.8, 0.2, 1.0}; - static GLfloat blue[4] = - {0.2, 0.2, 1.0, 1.0}; - - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glEnable(GL_CULL_FACE); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_DEPTH_TEST); - - /* make the gears */ - gear1 = glGenLists(1); - glNewList(gear1, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red); - gear(1.0, 4.0, 1.0, 20, 0.7); - glEndList(); - - gear2 = glGenLists(1); - glNewList(gear2, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green); - gear(0.5, 2.0, 2.0, 10, 0.7); - glEndList(); - - gear3 = glGenLists(1); - glNewList(gear3, GL_COMPILE); - glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue); - gear(1.3, 2.0, 0.5, 10, 0.7); - glEndList(); - - glEnable(GL_NORMALIZE); -} - -void -visible(int vis) -{ - if (vis == GLUT_VISIBLE) - glutIdleFunc(idle); - else - glutIdleFunc(NULL); -} - -int main(int argc, char *argv[]) -{ - glutInit(&argc, argv); - glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); - -// glutInitWindowPosition(0, 0); -// glutInitWindowSize(300, 300); - glutCreateWindow("Gears"); - init(); - - glutDisplayFunc(draw); - glutReshapeFunc(reshape); - glutKeyboardFunc(key); - glutSpecialFunc(special); - glutVisibilityFunc(visible); - - glutMainLoop(); - - return 0; -} diff --git a/progs/ggi/gears2.c b/progs/ggi/gears2.c deleted file mode 100644 index 9468c03177..0000000000 --- a/progs/ggi/gears2.c +++ /dev/null @@ -1,390 +0,0 @@ -/* gears.c */ - -/* - * 3-D gear wheels. This program is in the public domain. - * - * Brian Paul - * modified by Uwe Maurer (uwe_maurer@t-online.de) - */ - -#include <string.h> -#include <math.h> -#include <stdlib.h> -#include <ggi/ggi.h> -#include <GL/ggimesa.h> -#ifndef M_PI -# define M_PI 3.14159265 -#endif - - -ggi_visual_t vis; -char text[100]; -int db_flag,vis_x, vis_y, vir_x, vir_y, gt; - -/* - * Draw a gear wheel. You'll probably want to call this function when - * building a display list since we do a lot of trig here. - * - * Input: inner_radius - radius of hole at center - * outer_radius - radius at center of teeth - * width - width of gear - * teeth - number of teeth - * tooth_depth - depth of tooth - */ -static void gear( GLfloat inner_radius, GLfloat outer_radius, GLfloat width, - GLint teeth, GLfloat tooth_depth ) -{ - GLint i; - GLfloat r0, r1, r2; - GLfloat angle, da; - GLfloat u, v, len; - - r0 = inner_radius; - r1 = outer_radius - tooth_depth/2.0; - r2 = outer_radius + tooth_depth/2.0; - - da = 2.0*M_PI / teeth / 4.0; - - glShadeModel( GL_FLAT ); - - glNormal3f( 0.0, 0.0, 1.0 ); - - /* draw front face */ - glBegin( GL_QUAD_STRIP ); - for (i=0;i<=teeth;i++) { - angle = i * 2.0*M_PI / teeth; - glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 ); - glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 ); - glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 ); - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 ); - } - glEnd(); - - /* draw front sides of teeth */ - glBegin( GL_QUADS ); - da = 2.0*M_PI / teeth / 4.0; - for (i=0;i<teeth;i++) { - angle = i * 2.0*M_PI / teeth; - - glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 ); - glVertex3f( r2*cos(angle+da), r2*sin(angle+da), width*0.5 ); - glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), width*0.5 ); - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 ); - } - glEnd(); - - - glNormal3f( 0.0, 0.0, -1.0 ); - - /* draw back face */ - glBegin( GL_QUAD_STRIP ); - for (i=0;i<=teeth;i++) { - angle = i * 2.0*M_PI / teeth; - glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 ); - glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 ); - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 ); - glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 ); - } - glEnd(); - - /* draw back sides of teeth */ - glBegin( GL_QUADS ); - da = 2.0*M_PI / teeth / 4.0; - for (i=0;i<teeth;i++) { - angle = i * 2.0*M_PI / teeth; - - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 ); - glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), -width*0.5 ); - glVertex3f( r2*cos(angle+da), r2*sin(angle+da), -width*0.5 ); - glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 ); - } - glEnd(); - - - /* draw outward faces of teeth */ - glBegin( GL_QUAD_STRIP ); - for (i=0;i<teeth;i++) { - angle = i * 2.0*M_PI / teeth; - - glVertex3f( r1*cos(angle), r1*sin(angle), width*0.5 ); - glVertex3f( r1*cos(angle), r1*sin(angle), -width*0.5 ); - u = r2*cos(angle+da) - r1*cos(angle); - v = r2*sin(angle+da) - r1*sin(angle); - len = sqrt( u*u + v*v ); - u /= len; - v /= len; - glNormal3f( v, -u, 0.0 ); - glVertex3f( r2*cos(angle+da), r2*sin(angle+da), width*0.5 ); - glVertex3f( r2*cos(angle+da), r2*sin(angle+da), -width*0.5 ); - glNormal3f( cos(angle), sin(angle), 0.0 ); - glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), width*0.5 ); - glVertex3f( r2*cos(angle+2*da), r2*sin(angle+2*da), -width*0.5 ); - u = r1*cos(angle+3*da) - r2*cos(angle+2*da); - v = r1*sin(angle+3*da) - r2*sin(angle+2*da); - glNormal3f( v, -u, 0.0 ); - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), width*0.5 ); - glVertex3f( r1*cos(angle+3*da), r1*sin(angle+3*da), -width*0.5 ); - glNormal3f( cos(angle), sin(angle), 0.0 ); - } - - glVertex3f( r1*cos(0), r1*sin(0), width*0.5 ); - glVertex3f( r1*cos(0), r1*sin(0), -width*0.5 ); - - glEnd(); - - - glShadeModel( GL_SMOOTH ); - - /* draw inside radius cylinder */ - glBegin( GL_QUAD_STRIP ); - for (i=0;i<=teeth;i++) { - angle = i * 2.0*M_PI / teeth; - glNormal3f( -cos(angle), -sin(angle), 0.0 ); - glVertex3f( r0*cos(angle), r0*sin(angle), -width*0.5 ); - glVertex3f( r0*cos(angle), r0*sin(angle), width*0.5 ); - } - glEnd(); - -} - - -static GLfloat view_rotx=20.0, view_roty=30.0, view_rotz=0.0; -static GLint gear1, gear2, gear3; -static GLfloat angle = 0.0; - -static GLuint limit; -static GLuint count = 1; - - -static void draw( void ) -{ - static int n = 0; - glClearColor(0,0,0,0); - glClearIndex(0); - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - - glPushMatrix(); - glRotatef( view_rotx, 1.0, 0.0, 0.0 ); - glRotatef( view_roty, 0.0, 1.0, 0.0 ); - glRotatef( view_rotz, 0.0, 0.0, 1.0 ); - - glPushMatrix(); - glTranslatef( -3.0, -2.0, 0.0 ); - glRotatef( angle, 0.0, 0.0, 1.0 ); - glCallList(gear1); - glPopMatrix(); - - glPushMatrix(); - glTranslatef( 3.1, -2.0, 0.0 ); - glRotatef( -2.0*angle-9.0, 0.0, 0.0, 1.0 ); - glCallList(gear2); - glPopMatrix(); - - glPushMatrix(); - glTranslatef( -3.1, 4.2, 0.0 ); - glRotatef( -2.0*angle-25.0, 0.0, 0.0, 1.0 ); - glCallList(gear3); - glPopMatrix(); - - glPopMatrix(); - glFlush(); - glFinish(); - -#if 0 - ggiSetGCForeground(vis,255); - ggiPuts(vis,0,0,"Mesa -> GGI"); - ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y," Mesa -> GGI"); - - ggiPuts(vis,0,16,text); - ggiPuts(vis,0,ggiGetInfo(vis)->mode->visible.y+16,text); -#endif - - if(db_flag) - ggiMesaSwapBuffers(); - - count++; - if (count==limit) { - exit(1); - } - ++n; - /* - if (!(n%10)){ - ggi_color rgb = { 10000, 10000, 10000 }; - ggiSetSimpleMode(vis,vis_x+(n/10),vis_y+(n/10),db_flag?2:1, gt); - glViewport(0, 0,vis_x+(n/10),vis_y+(n/10)); - ggiSetGCForeground(vis, ggiMapColor(vis, &rgb)); - ggiDrawBox(vis, 20, 20, 100, 100); - if(db_flag) - ggiSetWriteFrame(vis, 1); - } - */ -} - -static void idle( void ) -{ - angle += 2.0; - draw(); -} - -/* new window size or exposure */ -static void reshape( int width, int height ) -{ - GLfloat h = (GLfloat) height / (GLfloat) width; - - if(db_flag) - glDrawBuffer(GL_BACK); - else - glDrawBuffer(GL_FRONT); - glViewport(0, 0, (GLint)width, (GLint)height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -h, h, 5.0, 60.0 ); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef( 0.0, 0.0, -40.0 ); - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - -} - - -static void init( void ) -{ - static GLfloat pos[4] = {5.0, 5.0, 10.0, 0.0 }; - static GLfloat red[4] = {0.9, 0.9, 0.9, 1.0 }; - static GLfloat green[4] = {0.0, 0.8, 0.9, 1.0 }; - static GLfloat blue[4] = {0.2, 0.2, 1.0, 1.0 }; - - glLightfv( GL_LIGHT0, GL_POSITION, pos ); - glEnable( GL_CULL_FACE ); - glEnable( GL_LIGHTING ); - glEnable( GL_LIGHT0 ); - glEnable( GL_DEPTH_TEST ); - - /* make the gears */ - gear1 = glGenLists(1); - glNewList(gear1, GL_COMPILE); - glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, red ); - glIndexi(1); - gear( 1.0, 4.0, 1.0, 20, 0.7 ); - glEndList(); - - gear2 = glGenLists(1); - glNewList(gear2, GL_COMPILE); - glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, green ); - glIndexi(2); - gear( 0.5, 2.0, 2.0, 10, 0.7 ); - glEndList(); - - gear3 = glGenLists(1); - glNewList(gear3, GL_COMPILE); - glMaterialfv( GL_FRONT, GL_AMBIENT_AND_DIFFUSE, blue ); - glIndexi(3); - gear( 1.3, 2.0, 0.5, 10, 0.7 ); - glEndList(); - - glEnable( GL_NORMALIZE ); -} - -static void usage(char *s) -{ - printf("%s visible_x visible_y virtual_x virtual_y bpp db_flag\n",s); - printf("example:\n"); - printf("%s 320 200 320 400 8 1\n",s); - exit(1); -} - -int main( int argc, char *argv[] ) -{ - ggi_mesa_context_t ctx; - ggi_mode mode; - int bpp; - - limit=0; - - if (argc<7) usage(argv[0]); - - vis_x=atoi(argv[1]); - vis_y=atoi(argv[2]); - vir_x=atoi(argv[3]); - vir_y=atoi(argv[4]); - bpp=atoi(argv[5]); - db_flag=atoi(argv[6]); - - switch(bpp) - { - case 4: gt=GT_4BIT;break; - case 8: gt=GT_8BIT;break; - case 15:gt=GT_15BIT;break; - case 16:gt=GT_16BIT;break; - case 24:gt=GT_24BIT;break; - case 32:gt=GT_32BIT;break; - default: - printf("%i Bits per Pixel ???\n",bpp); - exit(1); - } - sprintf(text,"%sx%s %i colors, RGB mode, %s", - argv[1],argv[2],1<<bpp, - (db_flag) ? "doublebuffer" : "no doublebuffer"); - - if (ggiInit()<0) - { - printf("ggiInit() failed\n"); - exit(1); - } - - if (ggiMesaInit() < 0) - { - printf("ggiMesaInit failed\n"); - exit(1); - } - - vis=ggiOpen(NULL); - if (vis==NULL) - { - printf("ggiOpen() failed\n"); - exit(1); - } - - if (ggiSetSimpleMode(vis,vis_x,vis_y,db_flag ? 2 : 1,gt)<0) - { - printf("%s: can't set graphmode (%i %i %i %i) %i BPP\n", - argv[0],vis_x,vis_y,vir_x,vir_y,bpp); - exit(1); - } - - if (ggiMesaAttach(vis) < 0) - { - printf("ggiMesaAttach failed\n"); - exit(1); - } - if (ggiMesaExtendVisual(vis, GL_FALSE, GL_FALSE, 16, - 0, 0, 0, 0, 0, 1) < 0) - { - printf ("GGIMesaSetVisual() failed\n"); - exit(1); - } - - ctx = ggiMesaCreateContext(vis); - if (ctx==NULL) - { - printf("GGIMesaCreateContext() failed\n"); - exit(1); - } - - ggiMesaMakeCurrent(ctx, vis); - ggiGetMode(vis,&mode); - - reshape(mode.visible.x,mode.visible.y); - - init(); - - while (!ggiKbhit(vis)) { /*sleep(1);*/ idle(); } - - ggiMesaDestroyContext(ctx); - ggiClose(vis); - - printf("%s\n",text); - - ggiExit(); - return 0; -} diff --git a/progs/ggi/sphere.asc b/progs/ggi/sphere.asc deleted file mode 100644 index cf7cebf224..0000000000 --- a/progs/ggi/sphere.asc +++ /dev/null @@ -1,132 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 20 Faces: 36 -Vertex list: -Vertex 0: X: -210 Y: -432.781738 Z: 180.000031 -Vertex 1: X: -610.810303 Y: 144.260559 Z: 103.580154 -Vertex 2: X: 56.586655 Y: 144.260544 Z: -128.902023 -Vertex 3: X: -75.776352 Y: 144.260605 Z: 565.321838 -Vertex 4: X: -462.815979 Y: -347.937683 Z: 131.797302 -Vertex 5: X: -616.506042 Y: -126.67173 Z: 102.494209 -Vertex 6: X: -41.847229 Y: -347.937683 Z: -14.843644 -Vertex 7: X: 60.375015 Y: -126.671753 Z: -133.291641 -Vertex 8: X: -125.336807 Y: -347.937653 Z: 423.046448 -Vertex 9: X: -73.868958 Y: -126.671692 Z: 570.797424 -Vertex 10: X: -448.353271 Y: 237.304672 Z: -92.34951 -Vertex 11: X: -192.440964 Y: 237.304672 Z: -181.494431 -Vertex 12: X: 145.038193 Y: 237.304672 Z: 109.754745 -Vertex 13: X: 94.283768 Y: 237.304688 Z: 375.953766 -Vertex 14: X: -326.684937 Y: 237.304733 Z: 522.594727 -Vertex 15: X: -531.842834 Y: 237.304718 Z: 345.540588 -Vertex 16: X: -331.419525 Y: -225.964966 Z: -168.564438 -Vertex 17: X: 152.575485 Y: -225.964935 Z: 249.129868 -Vertex 18: X: -451.155914 Y: -225.964905 Z: 459.434662 -Vertex 19: X: -298.413483 Y: 423.31897 Z: 163.142761 -Face list: -Face 0: A:0 B:4 C:6 AB:1 BC:1 CA:1 -Face 1: A:4 B:5 C:16 AB:1 BC:1 CA:1 -Face 2: A:4 B:16 C:6 AB:1 BC:1 CA:1 -Face 3: A:6 B:16 C:7 AB:1 BC:1 CA:1 -Face 4: A:5 B:1 C:10 AB:1 BC:1 CA:1 -Face 5: A:5 B:10 C:16 AB:1 BC:1 CA:1 -Face 6: A:16 B:10 C:11 AB:1 BC:1 CA:1 -Face 7: A:16 B:11 C:7 AB:1 BC:1 CA:1 -Face 8: A:7 B:11 C:2 AB:1 BC:1 CA:1 -Face 9: A:0 B:6 C:8 AB:1 BC:1 CA:1 -Face 10: A:6 B:7 C:17 AB:1 BC:1 CA:1 -Face 11: A:6 B:17 C:8 AB:1 BC:1 CA:1 -Face 12: A:8 B:17 C:9 AB:1 BC:1 CA:1 -Face 13: A:7 B:2 C:12 AB:1 BC:1 CA:1 -Face 14: A:7 B:12 C:17 AB:1 BC:1 CA:1 -Face 15: A:17 B:12 C:13 AB:1 BC:1 CA:1 -Face 16: A:17 B:13 C:9 AB:1 BC:1 CA:1 -Face 17: A:9 B:13 C:3 AB:1 BC:1 CA:1 -Face 18: A:0 B:8 C:4 AB:1 BC:1 CA:1 -Face 19: A:8 B:9 C:18 AB:1 BC:1 CA:1 -Face 20: A:8 B:18 C:4 AB:1 BC:1 CA:1 -Face 21: A:4 B:18 C:5 AB:1 BC:1 CA:1 -Face 22: A:9 B:3 C:14 AB:1 BC:1 CA:1 -Face 23: A:9 B:14 C:18 AB:1 BC:1 CA:1 -Face 24: A:18 B:14 C:15 AB:1 BC:1 CA:1 -Face 25: A:18 B:15 C:5 AB:1 BC:1 CA:1 -Face 26: A:5 B:15 C:1 AB:1 BC:1 CA:1 -Face 27: A:1 B:15 C:10 AB:1 BC:1 CA:1 -Face 28: A:15 B:14 C:19 AB:1 BC:1 CA:1 -Face 29: A:15 B:19 C:10 AB:1 BC:1 CA:1 -Face 30: A:10 B:19 C:11 AB:1 BC:1 CA:1 -Face 31: A:14 B:3 C:13 AB:1 BC:1 CA:1 -Face 32: A:14 B:13 C:19 AB:1 BC:1 CA:1 -Face 33: A:19 B:13 C:12 AB:1 BC:1 CA:1 -Face 34: A:19 B:12 C:11 AB:1 BC:1 CA:1 - - Page 1 - - - -Face 35: A:11 B:12 C:2 AB:1 BC:1 CA:1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Page 2 - - - diff --git a/progs/ggi/torus.asc b/progs/ggi/torus.asc deleted file mode 100644 index 605a62baa4..0000000000 --- a/progs/ggi/torus.asc +++ /dev/null @@ -1,264 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 40 Faces: 80 -Vertex list: -Vertex 0: X: -50.170624 Y: -0.000026 Z: -240.147842 -Vertex 1: X: -80.584503 Y: -63.958851 Z: -205.014572 -Vertex 2: X: -129.795166 Y: -39.528744 Z: -148.16774 -Vertex 3: X: -129.795166 Y: 39.528721 Z: -148.16774 -Vertex 4: X: -80.584503 Y: 63.958797 Z: -205.014572 -Vertex 5: X: 85.963654 Y: -0.000002 Z: 31.490465 -Vertex 6: X: 39.614838 Y: -63.958828 Z: 34.827602 -Vertex 7: X: -35.37915 Y: -39.528728 Z: 40.227196 -Vertex 8: X: -35.37912 Y: 39.528736 Z: 40.227188 -Vertex 9: X: 39.614838 Y: 63.95882 Z: 34.827595 -Vertex 10: X: -9.852051 Y: 0.000023 Z: 319.829254 -Vertex 11: X: -44.985352 Y: -63.958805 Z: 289.415405 -Vertex 12: X: -101.832199 Y: -39.528709 Z: 240.204758 -Vertex 13: X: -101.832184 Y: 39.528755 Z: 240.204773 -Vertex 14: X: -44.985352 Y: 63.958843 Z: 289.415405 -Vertex 15: X: -281.490326 Y: 0.000035 Z: 455.963654 -Vertex 16: X: -284.827484 Y: -63.958794 Z: 409.614868 -Vertex 17: X: -290.227112 Y: -39.528702 Z: 334.62085 -Vertex 18: X: -290.227112 Y: 39.528763 Z: 334.62088 -Vertex 19: X: -284.827484 Y: 63.958855 Z: 409.614838 -Vertex 20: X: -569.829163 Y: 0.000026 Z: 360.14798 -Vertex 21: X: -539.415344 Y: -63.958801 Z: 325.014709 -Vertex 22: X: -490.204712 Y: -39.528709 Z: 268.167847 -Vertex 23: X: -490.204712 Y: 39.528755 Z: 268.167847 -Vertex 24: X: -539.415344 Y: 63.958847 Z: 325.014679 -Vertex 25: X: -705.963684 Y: 0.000002 Z: 88.509598 -Vertex 26: X: -659.614807 Y: -63.958824 Z: 85.172462 -Vertex 27: X: -584.62085 Y: -39.528725 Z: 79.77285 -Vertex 28: X: -584.62085 Y: 39.52874 Z: 79.77285 -Vertex 29: X: -659.614868 Y: 63.958824 Z: 85.172447 -Vertex 30: X: -610.147827 Y: -0.000023 Z: -199.829361 -Vertex 31: X: -575.014587 Y: -63.958847 Z: -169.415497 -Vertex 32: X: -518.167725 Y: -39.528744 Z: -120.204819 -Vertex 33: X: -518.167725 Y: 39.528721 Z: -120.204834 -Vertex 34: X: -575.014587 Y: 63.958801 Z: -169.415497 -Vertex 35: X: -338.509338 Y: -0.000035 Z: -335.963745 -Vertex 36: X: -335.172241 Y: -63.958858 Z: -289.614868 -Vertex 37: X: -329.772675 Y: -39.528751 Z: -214.620865 -Vertex 38: X: -329.772675 Y: 39.528713 Z: -214.620865 -Vertex 39: X: -335.172241 Y: 63.95879 Z: -289.614899 -Face list: -Face 0: A:0 B:6 C:1 AB:0 BC:1 CA:1 -Smoothing: 1 -Face 1: A:0 B:5 C:6 AB:1 BC:1 CA:0 -Smoothing: 1 -Face 2: A:1 B:7 C:2 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 3: A:1 B:6 C:7 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 4: A:2 B:8 C:3 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 5: A:2 B:7 C:8 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 6: A:3 B:9 C:4 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 7: A:3 B:8 C:9 AB:1 BC:1 CA:0 - - Page 1 - - - -Smoothing: 4 -Face 8: A:4 B:5 C:0 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 9: A:4 B:9 C:5 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 10: A:5 B:11 C:6 AB:0 BC:1 CA:1 -Smoothing: 6 -Face 11: A:5 B:10 C:11 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 12: A:6 B:12 C:7 AB:0 BC:1 CA:1 -Smoothing: 7 -Face 13: A:6 B:11 C:12 AB:1 BC:1 CA:0 -Smoothing: 7 -Face 14: A:7 B:13 C:8 AB:0 BC:1 CA:1 -Smoothing: 8 -Face 15: A:7 B:12 C:13 AB:1 BC:1 CA:0 -Smoothing: 8 -Face 16: A:8 B:14 C:9 AB:0 BC:1 CA:1 -Smoothing: 9 -Face 17: A:8 B:13 C:14 AB:1 BC:1 CA:0 -Smoothing: 9 -Face 18: A:9 B:10 C:5 AB:0 BC:1 CA:1 -Smoothing: 10 -Face 19: A:9 B:14 C:10 AB:1 BC:1 CA:0 -Smoothing: 10 -Face 20: A:10 B:16 C:11 AB:0 BC:1 CA:1 -Smoothing: 11 -Face 21: A:10 B:15 C:16 AB:1 BC:1 CA:0 -Smoothing: 11 -Face 22: A:11 B:17 C:12 AB:0 BC:1 CA:1 -Smoothing: 12 -Face 23: A:11 B:16 C:17 AB:1 BC:1 CA:0 -Smoothing: 12 -Face 24: A:12 B:18 C:13 AB:0 BC:1 CA:1 -Smoothing: 13 -Face 25: A:12 B:17 C:18 AB:1 BC:1 CA:0 -Smoothing: 13 -Face 26: A:13 B:19 C:14 AB:0 BC:1 CA:1 -Smoothing: 14 -Face 27: A:13 B:18 C:19 AB:1 BC:1 CA:0 -Smoothing: 14 -Face 28: A:14 B:15 C:10 AB:0 BC:1 CA:1 -Smoothing: 15 -Face 29: A:14 B:19 C:15 AB:1 BC:1 CA:0 -Smoothing: 15 -Face 30: A:15 B:21 C:16 AB:0 BC:1 CA:1 -Smoothing: 16 -Face 31: A:15 B:20 C:21 AB:1 BC:1 CA:0 -Smoothing: 16 -Face 32: A:16 B:22 C:17 AB:0 BC:1 CA:1 -Smoothing: 17 -Face 33: A:16 B:21 C:22 AB:1 BC:1 CA:0 -Smoothing: 17 -Face 34: A:17 B:23 C:18 AB:0 BC:1 CA:1 -Smoothing: 18 -Face 35: A:17 B:22 C:23 AB:1 BC:1 CA:0 -Smoothing: 18 -Face 36: A:18 B:24 C:19 AB:0 BC:1 CA:1 -Smoothing: 19 -Face 37: A:18 B:23 C:24 AB:1 BC:1 CA:0 -Smoothing: 19 - - Page 2 - - - -Face 38: A:19 B:20 C:15 AB:0 BC:1 CA:1 -Smoothing: 20 -Face 39: A:19 B:24 C:20 AB:1 BC:1 CA:0 -Smoothing: 20 -Face 40: A:20 B:26 C:21 AB:0 BC:1 CA:1 -Smoothing: 21 -Face 41: A:20 B:25 C:26 AB:1 BC:1 CA:0 -Smoothing: 21 -Face 42: A:21 B:27 C:22 AB:0 BC:1 CA:1 -Smoothing: 22 -Face 43: A:21 B:26 C:27 AB:1 BC:1 CA:0 -Smoothing: 22 -Face 44: A:22 B:28 C:23 AB:0 BC:1 CA:1 -Smoothing: 23 -Face 45: A:22 B:27 C:28 AB:1 BC:1 CA:0 -Smoothing: 23 -Face 46: A:23 B:29 C:24 AB:0 BC:1 CA:1 -Smoothing: 24 -Face 47: A:23 B:28 C:29 AB:1 BC:1 CA:0 -Smoothing: 24 -Face 48: A:24 B:25 C:20 AB:0 BC:1 CA:1 -Smoothing: 25 -Face 49: A:24 B:29 C:25 AB:1 BC:1 CA:0 -Smoothing: 25 -Face 50: A:25 B:31 C:26 AB:0 BC:1 CA:1 -Smoothing: 26 -Face 51: A:25 B:30 C:31 AB:1 BC:1 CA:0 -Smoothing: 26 -Face 52: A:26 B:32 C:27 AB:0 BC:1 CA:1 -Smoothing: 27 -Face 53: A:26 B:31 C:32 AB:1 BC:1 CA:0 -Smoothing: 27 -Face 54: A:27 B:33 C:28 AB:0 BC:1 CA:1 -Smoothing: 28 -Face 55: A:27 B:32 C:33 AB:1 BC:1 CA:0 -Smoothing: 28 -Face 56: A:28 B:34 C:29 AB:0 BC:1 CA:1 -Smoothing: 29 -Face 57: A:28 B:33 C:34 AB:1 BC:1 CA:0 -Smoothing: 29 -Face 58: A:29 B:30 C:25 AB:0 BC:1 CA:1 -Smoothing: 30 -Face 59: A:29 B:34 C:30 AB:1 BC:1 CA:0 -Smoothing: 30 -Face 60: A:30 B:36 C:31 AB:0 BC:1 CA:1 -Smoothing: 31 -Face 61: A:30 B:35 C:36 AB:1 BC:1 CA:0 -Smoothing: 31 -Face 62: A:31 B:37 C:32 AB:0 BC:1 CA:1 -Smoothing: 32 -Face 63: A:31 B:36 C:37 AB:1 BC:1 CA:0 -Smoothing: 32 -Face 64: A:32 B:38 C:33 AB:0 BC:1 CA:1 -Smoothing: 1 -Face 65: A:32 B:37 C:38 AB:1 BC:1 CA:0 -Smoothing: 1 -Face 66: A:33 B:39 C:34 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 67: A:33 B:38 C:39 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 68: A:34 B:35 C:30 AB:0 BC:1 CA:1 - - Page 3 - - - -Smoothing: 3 -Face 69: A:34 B:39 C:35 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 70: A:35 B:1 C:36 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 71: A:35 B:0 C:1 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 72: A:36 B:2 C:37 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 73: A:36 B:1 C:2 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 74: A:37 B:3 C:38 AB:0 BC:1 CA:1 -Smoothing: 6 -Face 75: A:37 B:2 C:3 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 76: A:38 B:4 C:39 AB:0 BC:1 CA:1 -Smoothing: 7 -Face 77: A:38 B:3 C:4 AB:1 BC:1 CA:0 -Smoothing: 7 -Face 78: A:39 B:0 C:35 AB:0 BC:1 CA:1 -Smoothing: 8 -Face 79: A:39 B:4 C:0 AB:1 BC:1 CA:0 -Smoothing: 8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Page 4 - - - diff --git a/progs/ggi/tube.asc b/progs/ggi/tube.asc deleted file mode 100644 index 0b5dd0d810..0000000000 --- a/progs/ggi/tube.asc +++ /dev/null @@ -1,396 +0,0 @@ -Ambient light color: Red=0.039216 Green=0.039216 Blue=0.039216 - -Named object: "Object01" -Tri-mesh, Vertices: 64 Faces: 128 -Vertex list: -Vertex 0: X: 61.483898 Y: 37.836231 Z: -70.94294 -Vertex 1: X: 82.867447 Y: 37.836235 Z: -41.288902 -Vertex 2: X: 91.275154 Y: 37.836239 Z: -5.70901 -Vertex 3: X: 85.427025 Y: 37.836243 Z: 30.380013 -Vertex 4: X: 66.213379 Y: 37.836243 Z: 61.483936 -Vertex 5: X: 36.559322 Y: 37.836246 Z: 82.86747 -Vertex 6: X: 0.979424 Y: 37.836246 Z: 91.275154 -Vertex 7: X: -35.109554 Y: 37.836246 Z: 85.42701 -Vertex 8: X: -66.213478 Y: 37.836246 Z: 66.213356 -Vertex 9: X: -87.597 Y: 37.836243 Z: 36.559303 -Vertex 10: X: -96.004677 Y: 37.836239 Z: 0.979406 -Vertex 11: X: -90.156517 Y: 37.836235 Z: -35.109615 -Vertex 12: X: -70.942848 Y: 37.836235 Z: -66.213516 -Vertex 13: X: -41.288776 Y: 37.836231 Z: -87.597023 -Vertex 14: X: -5.708872 Y: 37.836231 Z: -96.004692 -Vertex 15: X: 30.380142 Y: 37.836231 Z: -90.156502 -Vertex 16: X: 61.483898 Y: -38.14529 Z: -70.942932 -Vertex 17: X: 82.867447 Y: -38.145287 Z: -41.288895 -Vertex 18: X: 91.275154 Y: -38.145283 Z: -5.709003 -Vertex 19: X: 85.427025 Y: -38.145279 Z: 30.38002 -Vertex 20: X: 66.213379 Y: -38.145279 Z: 61.483944 -Vertex 21: X: 36.559322 Y: -38.145275 Z: 82.867477 -Vertex 22: X: 0.979424 Y: -38.145275 Z: 91.275162 -Vertex 23: X: -35.109554 Y: -38.145275 Z: 85.427017 -Vertex 24: X: -66.213478 Y: -38.145275 Z: 66.213364 -Vertex 25: X: -87.597 Y: -38.145279 Z: 36.559311 -Vertex 26: X: -96.004677 Y: -38.145283 Z: 0.979412 -Vertex 27: X: -90.156517 Y: -38.145287 Z: -35.109608 -Vertex 28: X: -70.942848 Y: -38.145287 Z: -66.213516 -Vertex 29: X: -41.288776 Y: -38.14529 Z: -87.597015 -Vertex 30: X: -5.708872 Y: -38.14529 Z: -96.004684 -Vertex 31: X: 30.380142 Y: -38.14529 Z: -90.156494 -Vertex 32: X: 29.53923 Y: 37.836235 Z: -36.632011 -Vertex 33: X: 40.224194 Y: 37.836239 Z: -21.814436 -Vertex 34: X: 44.425369 Y: 37.836239 Z: -4.035822 -Vertex 35: X: 41.503166 Y: 37.836239 Z: 13.997195 -Vertex 36: X: 31.902466 Y: 37.836243 Z: 29.539249 -Vertex 37: X: 17.084883 Y: 37.836243 Z: 40.224201 -Vertex 38: X: -0.693734 Y: 37.836243 Z: 44.425365 -Vertex 39: X: -18.726728 Y: 37.836243 Z: 41.503159 -Vertex 40: X: -34.26878 Y: 37.836243 Z: 31.902454 -Vertex 41: X: -44.953732 Y: 37.836239 Z: 17.084871 -Vertex 42: X: -49.154892 Y: 37.836239 Z: -0.693745 -Vertex 43: X: -46.232677 Y: 37.836239 Z: -18.726759 -Vertex 44: X: -36.631962 Y: 37.836235 Z: -34.268806 -Vertex 45: X: -21.814371 Y: 37.836235 Z: -44.953747 -Vertex 46: X: -4.035751 Y: 37.836235 Z: -49.1549 -Vertex 47: X: 13.997261 Y: 37.836235 Z: -46.23267 -Vertex 48: X: 29.53923 Y: -38.145287 Z: -36.632004 -Vertex 49: X: 40.224194 Y: -38.145283 Z: -21.814428 -Vertex 50: X: 44.425369 Y: -38.145283 Z: -4.035816 -Vertex 51: X: 41.503166 Y: -38.145283 Z: 13.997201 -Vertex 52: X: 31.902466 Y: -38.145279 Z: 29.539257 -Vertex 53: X: 17.084883 Y: -38.145279 Z: 40.224209 -Vertex 54: X: -0.693734 Y: -38.145279 Z: 44.425373 -Vertex 55: X: -18.726728 Y: -38.145279 Z: 41.503166 - - Page 1 - - - -Vertex 56: X: -34.26878 Y: -38.145279 Z: 31.902462 -Vertex 57: X: -44.953732 Y: -38.145283 Z: 17.084879 -Vertex 58: X: -49.154892 Y: -38.145283 Z: -0.693738 -Vertex 59: X: -46.232677 Y: -38.145283 Z: -18.726751 -Vertex 60: X: -36.631962 Y: -38.145287 Z: -34.268799 -Vertex 61: X: -21.814371 Y: -38.145287 Z: -44.953739 -Vertex 62: X: -4.035751 Y: -38.145287 Z: -49.154892 -Vertex 63: X: 13.997261 Y: -38.145287 Z: -46.232662 -Face list: -Face 0: A:0 B:1 C:17 AB:1 BC:1 CA:0 -Smoothing: 1 -Face 1: A:0 B:17 C:16 AB:0 BC:1 CA:1 -Smoothing: 1 -Face 2: A:1 B:2 C:18 AB:1 BC:1 CA:0 -Smoothing: 2 -Face 3: A:1 B:18 C:17 AB:0 BC:1 CA:1 -Smoothing: 2 -Face 4: A:2 B:3 C:19 AB:1 BC:1 CA:0 -Smoothing: 3 -Face 5: A:2 B:19 C:18 AB:0 BC:1 CA:1 -Smoothing: 3 -Face 6: A:3 B:4 C:20 AB:1 BC:1 CA:0 -Smoothing: 4 -Face 7: A:3 B:20 C:19 AB:0 BC:1 CA:1 -Smoothing: 4 -Face 8: A:4 B:5 C:21 AB:1 BC:1 CA:0 -Smoothing: 5 -Face 9: A:4 B:21 C:20 AB:0 BC:1 CA:1 -Smoothing: 5 -Face 10: A:5 B:6 C:22 AB:1 BC:1 CA:0 -Smoothing: 6 -Face 11: A:5 B:22 C:21 AB:0 BC:1 CA:1 -Smoothing: 6 -Face 12: A:6 B:7 C:23 AB:1 BC:1 CA:0 -Smoothing: 7 -Face 13: A:6 B:23 C:22 AB:0 BC:1 CA:1 -Smoothing: 7 -Face 14: A:7 B:8 C:24 AB:1 BC:1 CA:0 -Smoothing: 8 -Face 15: A:7 B:24 C:23 AB:0 BC:1 CA:1 -Smoothing: 8 -Face 16: A:8 B:9 C:25 AB:1 BC:1 CA:0 -Smoothing: 9 -Face 17: A:8 B:25 C:24 AB:0 BC:1 CA:1 -Smoothing: 9 -Face 18: A:9 B:10 C:26 AB:1 BC:1 CA:0 -Smoothing: 10 -Face 19: A:9 B:26 C:25 AB:0 BC:1 CA:1 -Smoothing: 10 -Face 20: A:10 B:11 C:27 AB:1 BC:1 CA:0 -Smoothing: 11 -Face 21: A:10 B:27 C:26 AB:0 BC:1 CA:1 -Smoothing: 11 -Face 22: A:11 B:12 C:28 AB:1 BC:1 CA:0 -Smoothing: 12 -Face 23: A:11 B:28 C:27 AB:0 BC:1 CA:1 -Smoothing: 12 -Face 24: A:12 B:13 C:29 AB:1 BC:1 CA:0 -Smoothing: 13 -Face 25: A:12 B:29 C:28 AB:0 BC:1 CA:1 -Smoothing: 13 - - Page 2 - - - -Face 26: A:13 B:14 C:30 AB:1 BC:1 CA:0 -Smoothing: 14 -Face 27: A:13 B:30 C:29 AB:0 BC:1 CA:1 -Smoothing: 14 -Face 28: A:14 B:15 C:31 AB:1 BC:1 CA:0 -Smoothing: 15 -Face 29: A:14 B:31 C:30 AB:0 BC:1 CA:1 -Smoothing: 15 -Face 30: A:15 B:0 C:16 AB:1 BC:1 CA:0 -Smoothing: 16 -Face 31: A:15 B:16 C:31 AB:0 BC:1 CA:1 -Smoothing: 16 -Face 32: A:32 B:49 C:33 AB:0 BC:1 CA:1 -Smoothing: 17 -Face 33: A:32 B:48 C:49 AB:1 BC:1 CA:0 -Smoothing: 17 -Face 34: A:33 B:50 C:34 AB:0 BC:1 CA:1 -Smoothing: 18 -Face 35: A:33 B:49 C:50 AB:1 BC:1 CA:0 -Smoothing: 18 -Face 36: A:34 B:51 C:35 AB:0 BC:1 CA:1 -Smoothing: 19 -Face 37: A:34 B:50 C:51 AB:1 BC:1 CA:0 -Smoothing: 19 -Face 38: A:35 B:52 C:36 AB:0 BC:1 CA:1 -Smoothing: 20 -Face 39: A:35 B:51 C:52 AB:1 BC:1 CA:0 -Smoothing: 20 -Face 40: A:36 B:53 C:37 AB:0 BC:1 CA:1 -Smoothing: 21 -Face 41: A:36 B:52 C:53 AB:1 BC:1 CA:0 -Smoothing: 21 -Face 42: A:37 B:54 C:38 AB:0 BC:1 CA:1 -Smoothing: 22 -Face 43: A:37 B:53 C:54 AB:1 BC:1 CA:0 -Smoothing: 22 -Face 44: A:38 B:55 C:39 AB:0 BC:1 CA:1 -Smoothing: 23 -Face 45: A:38 B:54 C:55 AB:1 BC:1 CA:0 -Smoothing: 23 -Face 46: A:39 B:56 C:40 AB:0 BC:1 CA:1 -Smoothing: 24 -Face 47: A:39 B:55 C:56 AB:1 BC:1 CA:0 -Smoothing: 24 -Face 48: A:40 B:57 C:41 AB:0 BC:1 CA:1 -Smoothing: 25 -Face 49: A:40 B:56 C:57 AB:1 BC:1 CA:0 -Smoothing: 25 -Face 50: A:41 B:58 C:42 AB:0 BC:1 CA:1 -Smoothing: 26 -Face 51: A:41 B:57 C:58 AB:1 BC:1 CA:0 -Smoothing: 26 -Face 52: A:42 B:59 C:43 AB:0 BC:1 CA:1 -Smoothing: 27 -Face 53: A:42 B:58 C:59 AB:1 BC:1 CA:0 -Smoothing: 27 -Face 54: A:43 B:60 C:44 AB:0 BC:1 CA:1 -Smoothing: 28 -Face 55: A:43 B:59 C:60 AB:1 BC:1 CA:0 -Smoothing: 28 -Face 56: A:44 B:61 C:45 AB:0 BC:1 CA:1 - - Page 3 - - - -Smoothing: 29 -Face 57: A:44 B:60 C:61 AB:1 BC:1 CA:0 -Smoothing: 29 -Face 58: A:45 B:62 C:46 AB:0 BC:1 CA:1 -Smoothing: 30 -Face 59: A:45 B:61 C:62 AB:1 BC:1 CA:0 -Smoothing: 30 -Face 60: A:46 B:63 C:47 AB:0 BC:1 CA:1 -Smoothing: 31 -Face 61: A:46 B:62 C:63 AB:1 BC:1 CA:0 -Smoothing: 31 -Face 62: A:47 B:48 C:32 AB:0 BC:1 CA:1 -Smoothing: 32 -Face 63: A:47 B:63 C:48 AB:1 BC:1 CA:0 -Smoothing: 32 -Face 64: A:0 B:32 C:33 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 65: A:0 B:33 C:1 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 66: A:1 B:33 C:34 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 67: A:1 B:34 C:2 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 68: A:2 B:34 C:35 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 69: A:2 B:35 C:3 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 70: A:3 B:35 C:36 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 71: A:3 B:36 C:4 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 72: A:4 B:36 C:37 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 73: A:4 B:37 C:5 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 74: A:5 B:37 C:38 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 75: A:5 B:38 C:6 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 76: A:6 B:38 C:39 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 77: A:6 B:39 C:7 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 78: A:7 B:39 C:40 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 79: A:7 B:40 C:8 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 80: A:8 B:40 C:41 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 81: A:8 B:41 C:9 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 82: A:9 B:41 C:42 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 83: A:9 B:42 C:10 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 84: A:10 B:42 C:43 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 85: A:10 B:43 C:11 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 86: A:11 B:43 C:44 AB:0 BC:1 CA:0 -Smoothing: 1 - - Page 4 - - - -Face 87: A:11 B:44 C:12 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 88: A:12 B:44 C:45 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 89: A:12 B:45 C:13 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 90: A:13 B:45 C:46 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 91: A:13 B:46 C:14 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 92: A:14 B:46 C:47 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 93: A:14 B:47 C:15 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 94: A:15 B:47 C:32 AB:0 BC:1 CA:0 -Smoothing: 1 -Face 95: A:15 B:32 C:0 AB:0 BC:0 CA:1 -Smoothing: 1 -Face 96: A:16 B:17 C:49 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 97: A:16 B:49 C:48 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 98: A:17 B:18 C:50 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 99: A:17 B:50 C:49 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 100: A:18 B:19 C:51 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 101: A:18 B:51 C:50 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 102: A:19 B:20 C:52 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 103: A:19 B:52 C:51 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 104: A:20 B:21 C:53 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 105: A:20 B:53 C:52 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 106: A:21 B:22 C:54 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 107: A:21 B:54 C:53 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 108: A:22 B:23 C:55 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 109: A:22 B:55 C:54 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 110: A:23 B:24 C:56 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 111: A:23 B:56 C:55 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 112: A:24 B:25 C:57 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 113: A:24 B:57 C:56 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 114: A:25 B:26 C:58 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 115: A:25 B:58 C:57 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 116: A:26 B:27 C:59 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 117: A:26 B:59 C:58 AB:0 BC:1 CA:0 - - Page 5 - - - -Smoothing: 2 -Face 118: A:27 B:28 C:60 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 119: A:27 B:60 C:59 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 120: A:28 B:29 C:61 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 121: A:28 B:61 C:60 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 122: A:29 B:30 C:62 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 123: A:29 B:62 C:61 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 124: A:30 B:31 C:63 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 125: A:30 B:63 C:62 AB:0 BC:1 CA:0 -Smoothing: 2 -Face 126: A:31 B:16 C:48 AB:1 BC:0 CA:0 -Smoothing: 2 -Face 127: A:31 B:48 C:63 AB:0 BC:1 CA:0 -Smoothing: 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Page 6 - - - |