1 |
< |
/* Copyright (c) 1986 Regents of the University of California */ |
1 |
> |
/* Copyright (c) 1995 Regents of the University of California */ |
2 |
|
|
3 |
|
/* SCCSid "$SunId$ LBL" */ |
4 |
|
|
22 |
|
typedef struct { |
23 |
|
FVECT aim; /* aim direction or center */ |
24 |
|
float siz; /* output solid angle or area */ |
25 |
< |
float flen; /* focal length */ |
25 |
> |
float flen; /* focal length (negative if distant source) */ |
26 |
|
} SPOT; /* spotlight */ |
27 |
|
|
28 |
|
typedef struct { |
36 |
|
SPOT *s; /* spot */ |
37 |
|
} sl; /* localized source information */ |
38 |
|
union { |
39 |
< |
int success; /* successes - AIMREQT*failures */ |
39 |
> |
long success; /* successes - AIMREQT*failures */ |
40 |
|
struct { |
41 |
|
short pn; /* projection number */ |
42 |
< |
short sn; /* next source to aim for */ |
42 |
> |
int sn; /* next source to aim for */ |
43 |
|
} sv; /* virtual source */ |
44 |
|
} sa; /* source aiming information */ |
45 |
|
long ntests, nhits; /* shadow tests and hits */ |
46 |
|
OBJREC *so; /* source destination object */ |
47 |
|
} SRCREC; /* light source */ |
48 |
|
|
49 |
< |
#define MAXSPART 32 /* maximum partitions per source */ |
49 |
> |
#define MAXSPART 64 /* maximum partitions per source */ |
50 |
|
|
51 |
|
#define SU 0 /* U vector or partition */ |
52 |
|
#define SV 1 /* V vector or partition */ |
113 |
|
|
114 |
|
#define sflatform(sn,dir) -DOT(source[sn].snorm, dir) |
115 |
|
|
116 |
+ |
extern OBJREC *vsmaterial(); /* virtual source material */ |
117 |
+ |
|
118 |
|
extern double intercircle(); /* intersect two circles */ |
119 |
|
extern double spotdisk(); /* intersecting disk for spot */ |
120 |
|
extern double beamdisk(); /* intersecting disk for beam */ |
127 |
|
extern double srcsizerat; /* max. ratio of source size/dist. */ |
128 |
|
extern int directrelay; /* maximum number of source relays */ |
129 |
|
extern int vspretest; /* virtual source pretest density */ |
130 |
< |
extern int directinvis; /* sources invisible? */ |
130 |
> |
extern int directvis; /* sources visible? */ |
131 |
|
|
132 |
|
#define getplaneq(c,o) (*sfun[(o)->otype].of->getpleq)(c,o) |
133 |
|
#define getmaxdisk(c,o) (*sfun[(o)->otype].of->getdisk)(c,o) |