--- ray/src/ot/getbbox.c 1991/05/29 17:33:17 1.1 +++ ray/src/ot/getbbox.c 1991/05/29 18:00:29 1.3 @@ -43,6 +43,7 @@ char **argv; { char *getenv(); double atof(); + int nohead = 0; int i; progname = argv[0]; @@ -50,30 +51,34 @@ char **argv; if ((libpath = getenv("RAYPATH")) == NULL) libpath = DEFPATH; - for (i = 1; i < argc && argv[i][0] == '-'; i++) + for (i = 1; i < argc && argv[i][0] == '-'; i++) { switch (argv[i][1]) { - case '\0': /* scene from stdin */ - goto breakopt; - case 'w': /* supress warnings */ + case 'w': nowarn = 1; - break; - default: - sprintf(errmsg, "unknown option: '%s'", argv[i]); - error(USER, errmsg); - break; + continue; + case 'h': + nohead = 1; + continue; } -breakopt: + break; + } /* find bounding box */ bbmin[0] = bbmin[1] = bbmin[2] = FHUGE; bbmax[0] = bbmax[1] = bbmax[2] = -FHUGE; /* read input */ - for ( ; i < argc; i++) - if (!strcmp(argv[i], "-")) /* from stdin */ - readobj(NULL, addobject); - else /* from file */ - readobj(argv[i], addobject); - /* print it out */ - printf(" xmin xmax ymin ymax zmin zmax\n"); + if (i >= argc) + readobj(NULL, addobject); + else + for ( ; i < argc; i++) + if (!strcmp(argv[i], "-")) /* from stdin */ + readobj(NULL, addobject); + else /* from file */ + readobj(argv[i], addobject); + /* print bounding box */ + if (!nohead) + printf( +" xmin xmax ymin ymax zmin zmax\n"); + printf("%9g %9g %9g %9g %9g %9g\n", bbmin[0], bbmax[0], bbmin[1], bbmax[1], bbmin[2], bbmax[2]); quit(0);