47 |
|
*/ |
48 |
|
|
49 |
|
/* |
50 |
< |
* Virtual source materials must support the following functions: |
50 |
> |
* Virtual source materials must define the following. |
51 |
|
* |
52 |
|
* vproj(pm, op, sp, i) Compute i'th virtual projection |
53 |
|
* of source sp in object op and assign |
80 |
|
extern int nsources; /* the number of sources */ |
81 |
|
|
82 |
|
extern double srcray(); /* ray to source */ |
83 |
+ |
extern int srcvalue(); /* compute source value w/o shadows */ |
84 |
|
|
85 |
+ |
extern double intercircle(); /* intersect two circles */ |
86 |
+ |
extern double spotdisk(); /* intersecting disk for spot */ |
87 |
+ |
extern double beamdisk(); /* intersecting disk for beam */ |
88 |
+ |
|
89 |
|
extern SPOT *makespot(); /* make spotlight */ |
90 |
|
|
86 |
– |
extern SRCREC *newsource(); /* allocate new source */ |
87 |
– |
|
91 |
|
extern double dstrsrc; /* source distribution amount */ |
92 |
|
extern double shadthresh; /* relative shadow threshold */ |
93 |
|
extern double shadcert; /* shadow testing certainty */ |
94 |
|
extern int directrelay; /* maximum number of source relays */ |
95 |
+ |
extern int vspretest; /* virtual source pretest density */ |
96 |
+ |
|
97 |
+ |
#define getplaneq(c,o) (*sfun[(o)->otype].of->getpleq)(c,o) |
98 |
+ |
#define getmaxdisk(c,o) (*sfun[(o)->otype].of->getdisk)(c,o) |
99 |
+ |
#define setsource(s,o) (*sfun[(o)->otype].of->setsrc)(s,o) |