--- ray/src/cv/mgflib/3ds2mgf.c 1996/02/09 11:02:29 1.3 +++ ray/src/cv/mgflib/3ds2mgf.c 2007/09/05 02:41:19 1.9 @@ -1,5 +1,8 @@ +#ifndef lint +static const char RCSid[] = "$Id: 3ds2mgf.c,v 1.9 2007/09/05 02:41:19 greg Exp $"; +#endif /* - 3DS2POV.C Copyright (c) 1996 Steve Anger and Jeff Bowermaster + 3DS2POV.C by Steve Anger and Jeff Bowermaster MGF output added by Greg Ward Reads a 3D Studio .3DS file and writes a POV-Ray, Vivid, @@ -10,10 +13,6 @@ Compiled with MSDOS GNU C++ 2.4.1 or generic ANSI-C compiler */ -#ifndef lint -static char SCCSid[] = "$SunId$ LBL"; -#endif - #include #include #include @@ -47,8 +46,8 @@ extern unsigned _stklen = 16384; #define MGF 4 #define RAW 99 -#define DEG(x) ((180.0/M_PI)*(x)) -#define RAD(x) ((M_PI/180.0)*(x)) +#define DEG(x) ((double)(180.0/M_PI)*(x)) +#define RAD(x) ((double)(M_PI/180.0)*(x)) #ifndef M_PI #define M_PI (3.14159265358979323846) @@ -351,7 +350,9 @@ char *read_string (void); float findfov (float lens); int read_mgfmatname (char *s, int n, FILE *f); +char *progname; + int main (int argc, char *argv[]) { char meshfname[128]; @@ -453,14 +454,10 @@ int main (int argc, char *argv[]) void process_args (int argc, char *argv[]) { int i; - char *progname; char *env_opt, *option; printf("\n\nAutodesk 3D Studio to Raytracer file Translator. Feb/96\n"); - printf("Version 2.0 Copyright (c) 1996 Steve Anger and Jeff Bowermaster\n"); -#ifdef __GNUC__ - printf ("32 bit version. DOS extender Copyright (c) 1991 DJ Delorie\n"); -#endif + printf("Version 2.0 by Steve Anger and Jeff Bowermaster 1996\n"); printf ("\n"); if (argc < 2) { @@ -926,6 +923,9 @@ void write_summary (FILE *f) case MGF: comstr = "# "; break; + default: + printf ("Illegal format in write_summary() '%c'\n", format); + exit(1); } fprintf (f, "%s Object CenterX CenterY CenterZ LengthX LengthY LengthZ\n", comstr); fprintf (f, "%s ---------- ---------- ---------- ---------- ---------- ---------- ----------\n", comstr); @@ -1600,7 +1600,6 @@ void write_mgf_material (FILE *f, MatProp *m) /* Write a mesh file */ void write_mesh (FILE *f, Mesh *mesh) { - FILE *fi; int i; char curmat[80]; Vector va, vb, vc; @@ -2376,7 +2375,10 @@ void parse_3ds (Chunk *mainchunk) do { start_chunk (&chunk); - + if (feof(in)) { + fprintf(stderr, "%s: unexpected EOF\n", progname); + break; + } if (chunk.end <= mainchunk->end) { switch (chunk.tag) { case 0x3D3D: parse_mdata (&chunk);