ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rholo.h
Revision: 3.25
Committed: Tue Jun 8 19:48:30 2004 UTC (19 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad4R2P2, rad5R0, rad3R7P2, rad3R7P1, rad4R2, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1
Changes since 3.24: +2 -4 lines
Log Message:
Removed redundant #include's and fixed ordering on some headers

File Contents

# User Rev Content
1 greg 3.25 /* RCSid: $Id: rholo.h,v 3.24 2004/01/01 11:21:55 schorsch Exp $ */
2 gregl 3.1 /*
3     * Header file for rholo program
4     */
5 schorsch 3.23 #ifndef _RAD_RHOLO_H_
6     #define _RAD_RHOLO_H_
7 gregl 3.1
8 greg 3.25 #include "holo.h"
9 schorsch 3.24 #include "view.h"
10 gregl 3.1 #include "vars.h"
11    
12 schorsch 3.23 #ifdef __cplusplus
13     extern "C" {
14     #endif
15    
16 gregl 3.1 #ifndef RPACKSIZ
17     #define RPACKSIZ 21 /* good packet size */
18     #endif
19    
20     typedef struct packet {
21 greg 3.22 int16 hd; /* holodeck section (first) */
22     int32 bi; /* beam index (second) */
23     int32 nr; /* number of rays (third) */
24     int32 nc; /* number calculated (fourth) */
25 gwlarson 3.15 RAYVAL ra[RPACKSIZ]; /* ray values (fifth) */
26 gregl 3.1 float *offset; /* offset array if !vbool(OBSTRUCTIONS) */
27     struct packet *next; /* next in packet list */
28     } PACKET; /* a beam packet */
29    
30     typedef struct {
31 greg 3.22 int16 hd; /* holodeck section (first) */
32     int32 bi; /* beam index (second) */
33     int32 nr; /* number of rays (third) */
34     int32 nc; /* number calculated (fourth) */
35 gregl 3.1 } PACKHEAD; /* followed by ray values */
36    
37     #define packsiz(nr) (sizeof(PACKHEAD)+(nr)*sizeof(RAYVAL))
38 gregl 3.3 #define packra(p) ((RAYVAL *)((p)+1))
39 gregl 3.1
40 gwlarson 3.16 typedef struct {
41 gwlarson 3.20 int nb; /* number of beams in list */
42     PACKHEAD *bl; /* allocated beam list */
43     } BEAMLIST; /* a list of beam requests */
44    
45     typedef struct {
46 gwlarson 3.16 FVECT vpt; /* view (eye point) position */
47     double rng; /* desired mean radius for sample rays */
48     } VIEWPOINT; /* target eye position */
49    
50 gregl 3.1 /* input variables */
51 gwlarson 3.14 #define CACHE 0 /* amount of memory to use as cache */
52     #define DISKSPACE 1 /* how much disk space to use */
53     #define EYESEP 2 /* eye separation distance */
54 gwlarson 3.18 #define GEOMETRY 3 /* section geometry */
55     #define GRID 4 /* target grid size */
56     #define OBSTRUCTIONS 5 /* shall we track obstructions? */
57     #define OCTREE 6 /* octree file name */
58     #define PORTS 7 /* section portals */
59     #define RENDER 8 /* rendering options */
60     #define REPORT 9 /* report interval and error file */
61     #define RIF 10 /* rad input file */
62     #define SECTION 11 /* holodeck section boundaries */
63     #define TIME 12 /* maximum rendering time */
64     #define VDIST 13 /* virtual distance calculation */
65 gregl 3.1
66 gwlarson 3.18 #define NRHVARS 14 /* number of variables */
67 gregl 3.1
68     #define RHVINIT { \
69 gwlarson 3.14 {"CACHE", 2, 0, NULL, fltvalue}, \
70     {"DISKSPACE", 3, 0, NULL, fltvalue}, \
71     {"EYESEP", 3, 0, NULL, fltvalue}, \
72 gwlarson 3.18 {"geometry", 3, 0, NULL, NULL}, \
73 gwlarson 3.14 {"GRID", 2, 0, NULL, fltvalue}, \
74     {"OBSTRUCTIONS",3, 0, NULL, boolvalue}, \
75     {"OCTREE", 3, 0, NULL, onevalue}, \
76 gwlarson 3.18 {"portals", 3, 0, NULL, NULL}, \
77 gregl 3.1 {"render", 3, 0, NULL, catvalues}, \
78 gwlarson 3.14 {"REPORT", 3, 0, NULL, onevalue}, \
79     {"RIF", 3, 0, NULL, onevalue}, \
80 gregl 3.1 {"section", 3, 0, NULL, NULL}, \
81     {"TIME", 2, 0, NULL, fltvalue}, \
82 gregl 3.6 {"VDISTANCE", 2, 0, NULL, boolvalue}, \
83 gregl 3.1 }
84    
85 gregl 3.2 /* bundle set requests */
86 gregl 3.4 #define BS_NEW 1 /* replace current set with new one */
87     #define BS_ADD 2 /* add to current set */
88 gregl 3.5 #define BS_ADJ 3 /* adjust current set quantities */
89     #define BS_DEL 4 /* delete from current set */
90 gwlarson 3.20 #define BS_MAX 5 /* set to max of old and new */
91 gregl 3.2
92 gregl 3.1 extern char *progname; /* our program name */
93     extern char *hdkfile; /* holodeck file name */
94     extern char froot[]; /* root file name */
95    
96 gregl 3.4 extern char *outdev; /* output device name */
97    
98 gregl 3.8 extern int readinp; /* read input from stdin */
99    
100 gregl 3.10 extern int force; /* allow overwrite of holodeck */
101    
102 gregl 3.1 extern int nowarn; /* turn warnings off? */
103    
104 gregl 3.9 extern int ncprocs; /* number of requested compute processes */
105     extern int nprocs; /* number of running compute processes */
106 gregl 3.4
107 gwlarson 3.19 extern int chunkycmp; /* using "chunky" comparison mode */
108 gwlarson 3.16
109     extern VIEWPOINT myeye; /* target view position */
110 gregl 3.1
111     extern time_t starttime; /* time we got started */
112     extern time_t endtime; /* time we should end by */
113     extern time_t reporttime; /* time for next report */
114    
115 gregl 3.11 extern long nraysdone; /* number of rays done */
116     extern long npacksdone; /* number of packets done */
117    
118 gregl 3.1 extern int rtargc; /* rtrace command */
119     extern char *rtargv[];
120    
121 schorsch 3.24 /* rholo.c */
122     extern void done_packets(PACKET *pl);
123     /* rholo2.c */
124     extern void new_rtrace(void);
125     extern int done_rtrace(void);
126     extern void packrays(float *rod, PACKET *p);
127     extern void donerays(PACKET *p, float *rvl);
128     extern int getradfile(void);
129     extern void report(time_t t);
130     /* rholo2l.c */
131     extern int start_rtrace(void);
132     extern int end_rtrace(void);
133     extern PACKET *do_packets(PACKET *pl);
134     extern PACKET *flush_queue(void);
135     /* rholo3.c */
136     extern void init_global(void);
137     extern int next_packet(PACKET *p, int n);
138     extern void bundle_set(int op, PACKHEAD *clist, int nents);
139     /* rholo4.c */
140     extern void disp_open(char *dname);
141     extern void disp_packet(register PACKHEAD *p);
142     extern int disp_check(int block);
143     extern int disp_close(void);
144     /* viewbeams.c */
145     extern int nextview(VIEW *vp, FILE *fp);
146     extern int16 * viewbeams(VIEW *vp, int hr, int vr, BEAMLIST *blp);
147 schorsch 3.23
148     #ifdef __cplusplus
149     }
150     #endif
151     #endif /* _RAD_RHOLO_H_ */
152