ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rholo.h
Revision: 3.20
Committed: Thu Mar 4 10:29:23 1999 UTC (25 years, 1 month ago) by gwlarson
Content type: text/plain
Branch: MAIN
Changes since 3.19: +8 -0 lines
Log Message:
created rhpict program and viewbeams.c module to replace rhdisp3.c

File Contents

# User Rev Content
1 gwlarson 3.16 /* Copyright (c) 1998 Silicon Graphics, Inc. */
2 gregl 3.1
3     /* SCCSid "$SunId$ SGI" */
4    
5     /*
6     * Header file for rholo program
7     */
8    
9     #include "holo.h"
10     #include "vars.h"
11    
12     #ifndef RPACKSIZ
13     #define RPACKSIZ 21 /* good packet size */
14     #endif
15    
16     typedef struct packet {
17     int2 hd; /* holodeck section (first) */
18     int4 bi; /* beam index (second) */
19     int4 nr; /* number of rays (third) */
20 gregl 3.5 int4 nc; /* number calculated (fourth) */
21 gwlarson 3.15 RAYVAL ra[RPACKSIZ]; /* ray values (fifth) */
22 gregl 3.1 float *offset; /* offset array if !vbool(OBSTRUCTIONS) */
23     struct packet *next; /* next in packet list */
24     } PACKET; /* a beam packet */
25    
26     typedef struct {
27     int2 hd; /* holodeck section (first) */
28     int4 bi; /* beam index (second) */
29     int4 nr; /* number of rays (third) */
30 gregl 3.5 int4 nc; /* number calculated (fourth) */
31 gregl 3.1 } PACKHEAD; /* followed by ray values */
32    
33     #define packsiz(nr) (sizeof(PACKHEAD)+(nr)*sizeof(RAYVAL))
34 gregl 3.3 #define packra(p) ((RAYVAL *)((p)+1))
35 gregl 3.1
36 gwlarson 3.16 typedef struct {
37 gwlarson 3.20 int nb; /* number of beams in list */
38     PACKHEAD *bl; /* allocated beam list */
39     } BEAMLIST; /* a list of beam requests */
40    
41     typedef struct {
42 gwlarson 3.16 FVECT vpt; /* view (eye point) position */
43     double rng; /* desired mean radius for sample rays */
44     } VIEWPOINT; /* target eye position */
45    
46 gregl 3.1 /* input variables */
47 gwlarson 3.14 #define CACHE 0 /* amount of memory to use as cache */
48     #define DISKSPACE 1 /* how much disk space to use */
49     #define EYESEP 2 /* eye separation distance */
50 gwlarson 3.18 #define GEOMETRY 3 /* section geometry */
51     #define GRID 4 /* target grid size */
52     #define OBSTRUCTIONS 5 /* shall we track obstructions? */
53     #define OCTREE 6 /* octree file name */
54     #define PORTS 7 /* section portals */
55     #define RENDER 8 /* rendering options */
56     #define REPORT 9 /* report interval and error file */
57     #define RIF 10 /* rad input file */
58     #define SECTION 11 /* holodeck section boundaries */
59     #define TIME 12 /* maximum rendering time */
60     #define VDIST 13 /* virtual distance calculation */
61 gregl 3.1
62 gwlarson 3.18 #define NRHVARS 14 /* number of variables */
63 gregl 3.1
64     #define RHVINIT { \
65 gwlarson 3.14 {"CACHE", 2, 0, NULL, fltvalue}, \
66     {"DISKSPACE", 3, 0, NULL, fltvalue}, \
67     {"EYESEP", 3, 0, NULL, fltvalue}, \
68 gwlarson 3.18 {"geometry", 3, 0, NULL, NULL}, \
69 gwlarson 3.14 {"GRID", 2, 0, NULL, fltvalue}, \
70     {"OBSTRUCTIONS",3, 0, NULL, boolvalue}, \
71     {"OCTREE", 3, 0, NULL, onevalue}, \
72 gwlarson 3.18 {"portals", 3, 0, NULL, NULL}, \
73 gregl 3.1 {"render", 3, 0, NULL, catvalues}, \
74 gwlarson 3.14 {"REPORT", 3, 0, NULL, onevalue}, \
75     {"RIF", 3, 0, NULL, onevalue}, \
76 gregl 3.1 {"section", 3, 0, NULL, NULL}, \
77     {"TIME", 2, 0, NULL, fltvalue}, \
78 gregl 3.6 {"VDISTANCE", 2, 0, NULL, boolvalue}, \
79 gregl 3.1 }
80    
81 gregl 3.2 /* bundle set requests */
82 gregl 3.4 #define BS_NEW 1 /* replace current set with new one */
83     #define BS_ADD 2 /* add to current set */
84 gregl 3.5 #define BS_ADJ 3 /* adjust current set quantities */
85     #define BS_DEL 4 /* delete from current set */
86 gwlarson 3.20 #define BS_MAX 5 /* set to max of old and new */
87 gregl 3.2
88 gregl 3.1 extern char *progname; /* our program name */
89     extern char *hdkfile; /* holodeck file name */
90     extern char froot[]; /* root file name */
91    
92 gregl 3.4 extern char *outdev; /* output device name */
93    
94 gregl 3.8 extern int readinp; /* read input from stdin */
95    
96 gregl 3.10 extern int force; /* allow overwrite of holodeck */
97    
98 gregl 3.1 extern int nowarn; /* turn warnings off? */
99    
100 gregl 3.9 extern int ncprocs; /* number of requested compute processes */
101     extern int nprocs; /* number of running compute processes */
102 gregl 3.4
103 gwlarson 3.19 extern int chunkycmp; /* using "chunky" comparison mode */
104 gwlarson 3.16
105     extern VIEWPOINT myeye; /* target view position */
106 gregl 3.1
107     extern time_t starttime; /* time we got started */
108     extern time_t endtime; /* time we should end by */
109     extern time_t reporttime; /* time for next report */
110    
111 gregl 3.11 extern long nraysdone; /* number of rays done */
112     extern long npacksdone; /* number of packets done */
113    
114 gregl 3.1 extern int rtargc; /* rtrace command */
115     extern char *rtargv[];
116    
117     extern PACKET *do_packets(), *get_packets(), *flush_queue();
118 gwlarson 3.20
119     extern int2 *viewbeams();