111
|
1 typedef struct _geom_elem {
|
|
2 double coeffs[6];
|
|
3 } pGeomDefRec, *pGeomDefPtr;
|
|
4 typedef struct _mpgeombanddef {
|
|
5 int yOut;
|
|
6 int in_width;
|
|
7 } mpGeometryBandRec, *mpGeometryBandPtr;
|
|
8 typedef void *pointer;
|
|
9 typedef unsigned char CARD8;
|
|
10 typedef CARD8 BytePixel;
|
|
11 void BiGL_B (OUTP,srcimg,width,sline,pedpvt,pvtband) pointer OUTP;
|
|
12 pointer *srcimg;
|
|
13 register int width;
|
|
14 int sline;
|
|
15 pGeomDefPtr pedpvt; mpGeometryBandPtr pvtband;
|
|
16 {
|
|
17 register float s, t, st;
|
|
18 register int isrcline,isrcpix;
|
|
19 register int srcwidth = pvtband->in_width - 1;
|
|
20 register BytePixel val;
|
|
21 register BytePixel *ptrIn, *ptrJn;
|
|
22 register double a = pedpvt->coeffs[0];
|
|
23 register double c = pedpvt->coeffs[2];
|
|
24 register double srcpix = a * ((double)(0.0000)) + pedpvt->coeffs[1] * (pvtband->yOut + ((double)(0.0000)) ) + pedpvt->coeffs[4];
|
|
25 register double srcline = c * ((double)(0.0000)) + pedpvt->coeffs[3] * (pvtband->yOut + ((double)(0.0000)) ) + pedpvt->coeffs[5];
|
|
26 if ( (isrcpix >= 0) && (isrcpix < srcwidth) )
|
|
27 val = ptrIn[isrcpix] * ((float)1. - s - t + st) + ptrIn[isrcpix+1] * (s - st) + ptrJn[isrcpix] * (t - st) + ptrJn[isrcpix+1] * (st) + (float)0.5 ;
|
|
28 }
|