5 |
|
* Rendering routines for rhpict. |
6 |
|
*/ |
7 |
|
|
8 |
+ |
#include <string.h> |
9 |
+ |
|
10 |
|
#include "holo.h" |
11 |
|
#include "view.h" |
12 |
|
#include "random.h" |
37 |
|
#define CLR4(f,i) FL4OP(f,i,&=~) |
38 |
|
#define TGL4(f,i) FL4OP(f,i,^=) |
39 |
|
#define FL4NELS(n) (((n)+0x1f)>>5) |
40 |
< |
#define CLR4ALL(f,n) bzero((char *)(f),FL4NELS(n)*sizeof(int32)) |
40 |
> |
#define CLR4ALL(f,n) memset((char *)(f),'\0',FL4NELS(n)*sizeof(int32)) |
41 |
|
#endif |
42 |
|
|
43 |
|
static int32 *pixFlags; /* pixel occupancy flags */ |
53 |
|
extern int hres, vres; /* current horizontal and vertical res. */ |
54 |
|
|
55 |
|
|
56 |
+ |
void |
57 |
|
pixBeam(bp, hb) /* render a particular beam */ |
58 |
|
BEAM *bp; |
59 |
|
register HDBEAMI *hb; |
301 |
|
nd[NNEIGH-1] = MAXRAD2; |
302 |
|
for (hoff = 0; hoff < hres; hoff = (hoff<=0) - hoff) { |
303 |
|
h2 = h + hoff; |
304 |
< |
if (h2 < 0 | h2 >= hres) |
304 |
> |
if ((h2 < 0) | (h2 >= hres)) |
305 |
|
continue; |
306 |
|
if ((h2-h)*(h2-h) >= nd[NNEIGH-1]) |
307 |
|
break; |
308 |
|
for (n = 0; n < NNEIGH && rnl[h2][n] < NINF; n++) { |
309 |
|
d = (h2-h)*(h2-h) + (v-rnl[h2][n])*(v-rnl[h2][n]); |
310 |
< |
if (d == 0 | d >= nd[NNEIGH-1]) |
310 |
> |
if ((d == 0) | (d >= nd[NNEIGH-1])) |
311 |
|
continue; |
312 |
|
if (nn < NNEIGH) /* insert neighbor */ |
313 |
|
nn++; |