--- gnuconv.c.orig Fri Jul 23 11:49:48 1999 +++ gnuconv.c Fri Jul 23 22:29:24 1999 @@ -28,6 +28,7 @@ -s size; the x and y size of the rendered image -P for ppm output -X for output in X11 window +-d for dump polygon data ciao Carsten Hammer @@ -62,6 +63,8 @@ int c,block; int size; +int dump=0; + sipp_init(); mode=PHONG; output=PPM; @@ -69,7 +72,7 @@ /* shameless stolen from sipp demos */ -while ((c=getopt(argc,argv,"XPpgfls:")) !=EOF) +while ((c=getopt(argc,argv,"XPpgfls:d")) !=EOF) { switch (c) { case 'X': @@ -99,6 +102,10 @@ case 's': size = atoi(optarg); break; + + case 'd': + dump = 1; + break; } } @@ -162,10 +169,12 @@ (*feld)[i][2]=((*feld)[i][2]-zmid)*zsize; } +if (!dump) { lightsource_create(1.0,1.0,1.0, 1.0,1.0,1.0, LIGHT_DIRECTION); image_fd=fopen("out.ppm","w"); sipp_show_backfaces(TRUE); +} feldgroesse=(int)(sqrt((double)ii/2)); /* printf("Koordinatenanzahl=%i,Feld ist %i**2 in der Eingabedatei!\n",ii,feldgroesse); @@ -178,6 +187,7 @@ for (spalte=1;spalte<=feldgroesse-1;spalte++) { ru=zeile*feldgroesse+spalte; + if (!dump) { vertex_push((*feld)[ru][0],(*feld)[ru][1],(*feld)[ru][2]); vertex_push((*feld)[ru-1][0],(*feld)[ru-1][1],(*feld)[ru-1][2]); vertex_push((*feld)[ru-1-feldgroesse][0], @@ -194,8 +204,20 @@ (*feld)[ru-1-feldgroesse][2]); vertex_push((*feld)[ru][0],(*feld)[ru][1],(*feld)[ru][2]); polygon_push(); + } else { + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru][0],(*feld)[ru][1],(*feld)[ru][2]); + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru-1][0],(*feld)[ru-1][1],(*feld)[ru-1][2]); + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru-1-feldgroesse][0],(*feld)[ru-1-feldgroesse][1],(*feld)[ru-1-feldgroesse][2]); + printf("\n"); + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru][0],(*feld)[ru][1],(*feld)[ru][2]); + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru-feldgroesse][0],(*feld)[ru-feldgroesse][1],(*feld)[ru-feldgroesse][2]); + printf("%6.3f %6.3f %6.3f\n", (*feld)[ru-1-feldgroesse][0],(*feld)[ru-1-feldgroesse][1],(*feld)[ru-1-feldgroesse][2]); + printf("\n"); + } } } +if (dump) return(0); + mysurface= surface_basic_create(0.4 ,0.5,0.5,0.8 ,0.6 ,0.1 ,1.0,1.0,1.0); myobjekt=object_create(); object_add_surface(myobjekt,mysurface);