home *** CD-ROM | disk | FTP | other *** search
/ Encyclopedia of Graphics File Formats Companion / GFF_CD.ISO / formats / ttddd / code / mbb.c < prev    next >
C/C++ Source or Header  |  1994-06-20  |  1KB  |  58 lines

  1. /* mbb.c - simple little program to read in an Imagine object, and output
  2.  *       - a few useful statistics
  3.  *       - written by Glenn M. Lewis - 8/6/92
  4.  */
  5.  
  6. static char rcs_id[] = "$Id: mbb.c,v 1.5 1993/01/31 19:26:31 glewis Exp $";
  7.  
  8. #include <stdio.h>
  9. #include "t3dlib.h"
  10. #ifdef __STDC__         
  11. #include <stdlib.h>     
  12. #include <strings.h>    
  13. #include "mbb_protos.h"
  14. #endif
  15.  
  16. main(argc, argv)
  17. int argc;
  18. char *argv[];
  19. {
  20.     int i;
  21.     FILE *inp, *fopen();
  22.     WORLD *world;
  23.     MBB *mbb;
  24.  
  25.     for (i=1; i<argc; i++)
  26.         if (argv[i][0]=='-' && argv[i][1]=='h') goto USAGE;
  27.  
  28.     if (argc>2) {
  29. USAGE:
  30.         fprintf(stderr, "Usage: %s [file.iob]\n", argv[0]);
  31.         exit(-1);
  32.     }
  33.     if (argc==2) {
  34.         if (!(inp = fopen(argv[1], "r"))) {
  35.             fprintf(stderr, "Can't open '%s' for input.\n", argv[1]);
  36.             exit(-1);
  37.         }
  38.     } else inp = stdin;
  39.  
  40.     world = read_World(inp);
  41.     calculate_MBB_world(world);
  42.     mbb = (MBB *)world->user;
  43.  
  44.     fprintf(stdout, "MBB of object: (%.12g,%.12g,%.12g)-(%.12g,%.12g,%.12g)\n",
  45.         mbb->minx, mbb->miny, mbb->minz,
  46.         mbb->maxx, mbb->maxy, mbb->maxz);
  47.     fprintf(stdout, "Center of object: %.12g %.12g %.12g\n",
  48.         (mbb->minx+mbb->maxx)/2.0,
  49.         (mbb->miny+mbb->maxx)/2.0,
  50.         (mbb->minz+mbb->maxx)/2.0);
  51.     fprintf(stdout, "Size of object: %.12g %.12g %.12g\n",
  52.         mbb->maxx-mbb->minx,
  53.         mbb->maxy-mbb->minx,
  54.         mbb->maxz-mbb->minx);
  55.     exit(0);
  56. }
  57.  
  58.