1 /*
2  * options.h
3  *
4  * Copyright (C) 1989, 1991, Craig E. Kolb
5  * All rights reserved.
6  *
7  * This software may be freely copied, modified, and redistributed
8  * provided that this copyright notice is preserved on all copies.
9  *
10  * You may not distribute this software, in whole or in part, as part of
11  * any commercial product without the express consent of the authors.
12  *
13  * There is no warranty or other guarantee of fitness of this software
14  * for any purpose.  It is provided solely "as is".
15  *
16  * $Id: options.h,v 4.0.1.2 92/01/14 18:29:14 cek Exp Locker: cek $
17  *
18  * $Log:	options.h,v $
19  * Revision 4.0.1.2  92/01/14  18:29:14  cek
20  * patch3: Added "cpp" option.
21  *
22  * Revision 4.0.1.1  91/09/29  15:51:17  cek
23  * patch1: Added window and crop options.
24  *
25  * Revision 4.0  91/07/17  14:46:54  kolb
26  * Initial version.
27  *
28  */
29 #ifndef OPTIONS_H
30 #define OPTIONS_H
31 
32 /*
33  * Constants for Stereo mode
34  */
35 #define LEFT		1
36 #define RIGHT		2
37 
38 /*
39  * Options
40  */
41 typedef struct RSOptions {
42 	int	stereo,			/* Stereo mode? */
43 		verbose,		/* Babbling mode? */
44 		quiet,			/* Don't complain? */
45 		jitter,			/* use jittered sampling? */
46 		samples,		/* Sqrt of # of samples */
47 		maxdepth,		/* Maximum ray tree depth */
48 		report_freq,		/* Frequency, in lines, of report */
49 		no_shadows,		/* Trace shadow rays? */
50 		shadowtransp,		/* ... through transparent objects? */
51 		cache,			/* Cache shadowing info? */
52 		appending,		/* Append to image file? */
53 		resolution_set,		/* resolution set on command line */
54 		contrast_set,		/* contrast overridden ... */
55 		samples_set,		/* samples overridden ... */
56 		cutoff_set,		/* cutoff ... */
57 		maxdepth_set,		/* adaptive depth ... */
58 		window_set,		/* subwindow ... */
59 		crop_set,		/* crop window ... */
60 		freq_set,		/* report frequency ... */
61 		jitter_set,		/* use jittering */
62 		eyesep_set,		/* eye separation ... */
63 		csg,			/* CSG object someplace in world */
64 		flipnorm,		/* flip normals of polygonal objs */
65 		samplemap,		/* output sample map? */
66 		gaussian,		/* Use gaussian pixel filter? */
67 		framenum,		/* current frame number */
68 		startframe,		/* Starting frame number. */
69 		endframe,		/* ending frame number */
70 		totalframes,		/* total # of frames */
71 		totalframes_set,	/* set on command line? */
72 		cpp;			/* run CPP? */
73 #ifdef URT
74 	int	alpha;			/* Write alpha channel? */
75 	int	exp_output;		/* Write exponential RLE file? */
76 #endif
77 	Float	eyesep,			/* Eye separation (for Stereo mode) */
78 		gamma,			/* Gamma value (0 == no correction) */
79 		starttime,		/* Think about it ... */
80 		shutterspeed,		/* time shutter is open */
81 		framestart,		/* start time of the current frame */
82 		framelength,		/* length of the current frame */
83 		filterwidth;		/* Pixel filter width. */
84 	Color	contrast,		/* Max. allowable contrast */
85 		cutoff,			/* Ray tree depth control */
86 		ambient;		/* Ambient light multiplier */
87 	char	*progname,		/* argv[0] */
88 		*statsname,		/* Name of stats file. */
89 		*imgname,		/* Name of output image file */
90 		*inputname,		/* Name of input file, NULL == stdin */
91 		*cppargs;		/* arguments to pass to cpp */
92 	int	window[2][2];		/* Subwindow corners */
93 	Float	crop[2][2];		/* Crop window, lo/hi normalized */
94 #ifdef LINDA
95 	int	workers,		/* # of worker processes */
96 		workernum,		/* worker #, 0 == supervisor */
97 		verbose_worker;		/* Babble while you work? */
98 #endif
99 	FILE	*pictfile;		/* output file pointer */
100 } RSOptions;
101 
102 extern RSOptions Options;
103 extern void OptionsList(), OptionsSet();
104 
105 #endif /* OPTIONS_H */
106