/* main.c,v 1.1.1.1 1995/02/27 07:38:49 explorer Exp */

/*
 * main.c
 *
 * Copyright (C) 1989, 1991, Craig E. Kolb
 * All rights reserved.
 *
 * This software may be freely copied, modified, and redistributed
 * provided that this copyright notice is preserved on all copies.
 *
 * You may not distribute this software, in whole or in part, as part of
 * any commercial product without the express consent of the authors.
 *
 * There is no warranty or other guarantee of fitness of this software
 * for any purpose.  It is provided solely "as is".
 *
 */

char rcsid[] = "main.c,v 1.1.1.1 1995/02/27 07:38:49 explorer Exp";

#include "rayshade.h"
#include "options.h"
#include "stats.h"
#include "viewing.h"
#include "picture.h"


/* World object info. */
extern Geom *World;

int
main(argc, argv)
     int argc;
     char **argv;
{
  Float utime, stime;
  
  /*
   * Initialize variables, etc.
   */
  RSInitialize(argc, argv);
  MethodsRegister();
  
  RSStartFrame(0);
  /*
   * Print more information than we'll ever need to know...
   */
  if (Options.verbose) {
    /* World object info. */
    AggregatePrintInfo(World, Stats.fstats);
    /* Print info about rendering options and the like. */
    RSOptionsList();
  }
  /*
   * Print preprocessing time.
   */
  RSGetCpuTime(&utime, &stime);
  fprintf(Stats.fstats, "Preprocessing time:\t");
  fprintf(Stats.fstats, "%2.2fu  %2.2fs\n", utime, stime);
  fprintf(Stats.fstats, "Starting trace.\n");
  (void)fflush(Stats.fstats);
  /*
   * Draw the image.
   */
  Render();
  StatsPrint();

  exit(0);
}
