Mercurial > hg > aim92
diff tools/ftoa.c @ 0:5242703e91d3 tip
Initial checkin for AIM92 aimR8.2 (last updated May 1997).
author | tomwalters |
---|---|
date | Fri, 20 May 2011 15:19:45 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/ftoa.c Fri May 20 15:19:45 2011 +0100 @@ -0,0 +1,91 @@ +/* + ftoa.c frames (SAI or NAP) to ASCII + ------ + + Each data point is output as a triple: (x,y,z) + where (x,y) specify the coordinate in terms of a pointwise coordinate + system with the origin (0,0) in the bottom-left of the display. + + The output is in space-separated ASCII numbers with one triple per line. +*/ + +#include <stdio.h> +#include <math.h> +#include "header.h" +#include "options.h" +#include "strmatch.h" + + +char applic[] = "Frames to ASCII triples (x,y,z). " ; + +static char *helpstr, *debugstr, *formatstr ; + +static Options option[] = { + { "help" , "off" , &helpstr , "help" , DEBUG }, + { "debug" , "off" , &debugstr , "debugging switch" , DEBUG }, + { "format" , "nap" , &formatstr , "frame format (nap or sai)" , VAL }, + ( char * ) 0 } ; + + +int frameheight, framewidth ; /* Parameters read from header */ +int frames, framebytes ; + +main(argc, argv) +int argc ; +char *argv[] ; +{ + FILE *fp ; + char *header, *SaiHeader(); + short *frame ; + int x, y ; + + fp = openopts( option,argc,argv ) ; + if ( !isoff( helpstr ) ) + helpopts( helpstr, argv[0], applic, option ) ; + + if ( (header = ReadHeader(fp)) == (char *) 0 ) { + fprintf(stderr,"integrate: header not found\n"); + exit(1); + } + + frameheight = HeaderInt( header, "frameheight" ); + framewidth = HeaderInt( header, "framewidth" ); + frames = HeaderInt( header, "frames" ); + framebytes = HeaderInt( header, "framebytes" ); + + + if ( isstr( formatstr, "nap" ) ) { + framebytes = frames*frameheight*sizeof(short) ; + framewidth = frames ; + if ( (frame = (short *)malloc( framebytes )) == (short *)0 ) { + fprintf(stderr,"ftoa: malloc out of space\n"); + exit(1); + } + while ( fread( frame,framebytes,1,fp ) ) { + for ( x=0 ; x<framewidth ; x++ ) + for ( y=0 ; y<frameheight ; y++ ) + printf("%-5d %-5d %-5d\n", x, y, *frame++ ) ; + } + } + + else if ( isstr( formatstr, "sai" ) ) { + if ( (frame = (short *)malloc( framebytes )) == (short *)0 ) { + fprintf(stderr,"ftoa: malloc out of space\n"); + exit(1); + } + while ( fread( frame,framebytes,1,fp ) ) { + for ( y=0 ; y<frameheight ; y++ ) + for ( x=0 ; x<framewidth ; x++ ) + printf("%-5d %-5d %-5d\n", x, y, *frame++ ) ; + } + } + + else { + fprintf( stderr,"ftoa: unknown format [%s]\n", formatstr ) ; + exit( 1 ) ; + } + + fclose( fp ) ; +} + +