From: Gordon K. <kin...@us...> - 2004-04-22 05:04:03
|
Update of /cvsroot/teem/teem/src/ten/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22601 Modified Files: tt.c Log Message: allows tt to make glyphs for whole trace plane instead of usual barycentric space Index: tt.c =================================================================== RCS file: /cvsroot/teem/teem/src/ten/test/tt.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tt.c 7 Jan 2004 15:34:31 -0000 1.12 --- tt.c 22 Apr 2004 04:58:34 -0000 1.13 *************** *** 21,32 **** #include "../ten.h" ! char *info = ("Sample space of tensor orientation."); void ! _cap2xyz(double xyz[3], double ca, double cp, int version) { ! double cl, cs; cs = 1 - ca; cl = 1 - cs - cp; /* xyz[0] = cs*0.333 + cl*1.0 + cp*0.5; --- 21,33 ---- #include "../ten.h" ! char *info = ("Sample space of tensor shape."); void ! _cap2xyz(double xyz[3], double ca, double cp, int version, int whole) { ! double cl, cs, mean; cs = 1 - ca; cl = 1 - cs - cp; + mean = (cs + cp + cl)/3; /* xyz[0] = cs*0.333 + cl*1.0 + cp*0.5; *************** *** 37,48 **** xyz[2] = AIR_AFFINE(0, ca, 1, 1.1*xyz[2], 0.86*xyz[2]); */ ! if (1 == version) { ! xyz[0] = (3 + 3*cl - cs)/6; ! xyz[1] = (2 - 2*cl + cp)/6; ! xyz[2] = 2*cs/6; } else { ! xyz[0] = 1; ! xyz[1] = 1 - cl; ! xyz[2] = cs; } } --- 38,55 ---- xyz[2] = AIR_AFFINE(0, ca, 1, 1.1*xyz[2], 0.86*xyz[2]); */ ! if (whole) { ! ELL_3V_SET(xyz, ! AIR_AFFINE(0.0, 0.9, 1.0, mean, cl), ! AIR_AFFINE(0.0, 0.9, 1.0, mean, cp), ! AIR_AFFINE(0.0, 0.9, 1.0, mean, cs)); } else { ! if (1 == version) { ! ELL_3V_SET(xyz, ! (3 + 3*cl - cs)/6, ! (2 - 2*cl + cp)/6, ! 2*cs/6); ! } else { ! ELL_3V_SET(xyz, 1, 1 - cl, cs); ! } } } *************** *** 81,87 **** airArray *mop; ! int xi, yi, samp, version; float *tdata; ! double p[3], xyz[3], q[4], len, hackcp, maxca; double ca, cp, mD[9], mRF[9], mRI[9], mT[9], hack; Nrrd *nten; --- 88,94 ---- airArray *mop; ! int xi, yi, samp, version, whole; float *tdata; ! double p[3], xyz[3], q[4], len, hackcp=0, maxca; double ca, cp, mD[9], mRF[9], mRI[9], mT[9], hack; Nrrd *nten; *************** *** 95,98 **** --- 102,110 ---- hestOptAdd(&hopt, "ca", "max ca", airTypeDouble, 1, 1, &maxca, "0.8", "maximum ca to use at bottom edge of triangle"); + hestOptAdd(&hopt, "w", NULL, airTypeInt, 0, 0, &whole, NULL, + "sample the whole triangle of constant trace, " + "instead of just the " + "sixth of it in which the eigenvalues have the " + "traditional sorted order. "); hestOptAdd(&hopt, "hack", "hack", airTypeDouble, 1, 1, &hack, "0.04", "this is a hack"); *************** *** 131,139 **** ELL_3M_TRANSPOSE(mRI, mRF); for (yi=0; yi<samp; yi++) { ! ca = AIR_AFFINE(0, yi, samp-1, hack, maxca); ! hackcp = AIR_AFFINE(0, yi, samp-1, hack, 0); for (xi=0; xi<=yi; xi++) { ! cp = AIR_AFFINE(0, xi, samp-1, hackcp, maxca-hack/2.0); ! _cap2xyz(xyz, ca, cp, version); /* fprintf(stderr, "%s: (%d,%d) -> (%g,%g) -> %g %g %g\n", me, --- 143,159 ---- ELL_3M_TRANSPOSE(mRI, mRF); for (yi=0; yi<samp; yi++) { ! if (whole) { ! ca = AIR_AFFINE(0, yi, samp-1, 0.0, 1.0); ! } else { ! ca = AIR_AFFINE(0, yi, samp-1, hack, maxca); ! hackcp = AIR_AFFINE(0, yi, samp-1, hack, 0); ! } for (xi=0; xi<=yi; xi++) { ! if (whole) { ! cp = AIR_AFFINE(0, xi, samp-1, 0.0, 1.0); ! } else { ! cp = AIR_AFFINE(0, xi, samp-1, hackcp, maxca-hack/2.0); ! } ! _cap2xyz(xyz, ca, cp, version, whole); /* fprintf(stderr, "%s: (%d,%d) -> (%g,%g) -> %g %g %g\n", me, |