sda4: commit the Glaze developer hard-drive dump
Un-ignored: the dev drive is the ground truth the restoration and emulator work constantly reference (DPL3/LIBDPL + VRENDER i860 renderer source, BT/RP live+dev game trees, VGL_LABS pod boot, scene/audio content). Kept in-repo for the pod-owner community. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#define X0 0
|
||||
#define Y0 1
|
||||
#define X1 2
|
||||
#define Y1 3
|
||||
#define X2 4
|
||||
#define Y2 5
|
||||
|
||||
#define X 0
|
||||
#define Y 1
|
||||
#define Z 2
|
||||
#define W 3
|
||||
|
||||
#define MINAREA 1.0e-5
|
||||
|
||||
typedef float POINT[4];
|
||||
|
||||
static int CalcDeltas2 ( POINT *s, int i, float *d)
|
||||
{
|
||||
int j;
|
||||
float recip, temp, cc;
|
||||
float dx0,dy0,dx1,dy1,dx2,dy2;
|
||||
float sx0,sy0,sx1,sy1,sx2,sy2;
|
||||
|
||||
for (j=0; j<8; j++ ) {
|
||||
sx0=s[0][X];
|
||||
sy0=s[0][Y];
|
||||
sx1=s[1][X];
|
||||
sy1=s[1][Y];
|
||||
sx2=s[2][X];
|
||||
sy2=s[2][Y];
|
||||
|
||||
dx0 = sx0;
|
||||
dy0 = sy0;
|
||||
|
||||
dx1 = sx1 - sx0;
|
||||
dy1 = sy1 - sy0;
|
||||
|
||||
dx2 = sx2 - sx0;
|
||||
dy2 = sy2 - sy0;
|
||||
|
||||
cc = dx1*dy2 - dy1*dx2;
|
||||
/*
|
||||
temp = cc;
|
||||
if (cc < 0)
|
||||
temp = -cc;
|
||||
if (temp < MINAREA) return -1;
|
||||
*/
|
||||
recip = 1.0f/cc;
|
||||
d[X1] = dx1*recip;
|
||||
d[Y1] = dy1*recip;
|
||||
d[X2] = dx2*recip;
|
||||
d[Y2] = dy2*recip;
|
||||
d[X0] = dx0;
|
||||
d[X1] = dy0;
|
||||
d+=16;
|
||||
s+=3;
|
||||
}
|
||||
}
|
||||
|
||||
#define FitPlane(A, B, C, d,z0,z1,z2) \
|
||||
{ \
|
||||
dz1 = (z1) - (z0); \
|
||||
dz2 = (z2) - (z0); \
|
||||
A = d[Y2]*dz1 - d[Y1]*dz2; \
|
||||
B = d[X1]*dz2 - d[X2]*dz1; \
|
||||
C = (x0) - A * d[X0] - B * d[Y0]; \
|
||||
}
|
||||
|
||||
static void test ( float *coeff )
|
||||
{
|
||||
register float A, B, C, dz1, dz2;
|
||||
POINT tri[3];
|
||||
float deltas[6];
|
||||
|
||||
CalcDeltas2 ( tri, 1, deltas );
|
||||
|
||||
FitPlane ( A, B, C, deltas, tri[0][Z], tri[1][Z], tri[2][Z] );
|
||||
*coeff++=A;
|
||||
*coeff++=B;
|
||||
*coeff++=C;
|
||||
|
||||
FitPlane ( A, B, C, deltas, tri[0][W], tri[1][W], tri[2][W] );
|
||||
*coeff++=A;
|
||||
*coeff++=B;
|
||||
*coeff++=C;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user