| 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) |