5 |
|
* 3D warping routines. |
6 |
|
*/ |
7 |
|
|
8 |
– |
#include <stdio.h> |
8 |
|
#include <stdlib.h> |
9 |
|
#include <math.h> |
10 |
|
|
32 |
|
static int get3dgin(W3VEC ov, GNDX ndx, W3VEC rem, WARP3D *wp); |
33 |
|
static void l3interp(W3VEC vo, W3VEC *cl, W3VEC dv, int n); |
34 |
|
static int warp3dex(W3VEC ov, W3VEC pi, WARP3D *wp); |
36 |
– |
//static unsigned long gridhash(const void *gp); |
35 |
|
static lut_hashf_t gridhash; |
36 |
|
static int new3dgrid(WARP3D *wp); |
37 |
|
static void done3dgrid(struct grid3d *gp); |
364 |
|
|
365 |
|
static unsigned long |
366 |
|
gridhash( /* hash a grid point index */ |
367 |
< |
//GNDX gp |
370 |
< |
const void *gp |
367 |
> |
const char *gp |
368 |
|
) |
369 |
|
{ |
373 |
– |
//return(((unsigned long)gp[0]<<GNBITS | gp[1])<<GNBITS | gp[2]); |
370 |
|
return(((unsigned long)((const unsigned char*)gp)[0]<<GNBITS | ((const unsigned char*)gp)[1])<<GNBITS | ((const unsigned char*)gp)[2]); |
371 |
|
} |
372 |
|
|