From: Gordon K. <kin...@us...> - 2007-03-29 01:44:38
|
Update of /cvsroot/teem/teem/src/seek/test In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv17673/test Modified Files: trv.c Log Message: finally implemented seekTypeMaximalSurface and seekTypeMinimalSurface, but not sure if they are actually working Index: trv.c =================================================================== RCS file: /cvsroot/teem/teem/src/seek/test/trv.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** trv.c 14 Feb 2007 06:36:52 -0000 1.1 --- trv.c 29 Mar 2007 01:44:38 -0000 1.2 *************** *** 26,33 **** --- 26,75 ---- int + probeParseKind(void *ptr, char *str, char err[AIR_STRLEN_HUGE]) { + char me[] = "probeParseKind"; + gageKind **kindP; + + if (!(ptr && str)) { + sprintf(err, "%s: got NULL pointer", me); + return 1; + } + kindP = (gageKind **)ptr; + airToLower(str); + if (!strcmp(gageKindScl->name, str)) { + *kindP = gageKindScl; + } else if (!strcmp(gageKindVec->name, str)) { + *kindP = gageKindVec; + } else { + sprintf(err, "%s: not \"%s\" or \"%s\"", me, + gageKindScl->name, gageKindVec->name); + return 1; + } + + return 0; + } + + void * + probeParseKindDestroy(void *ptr) { + gageKind *kind; + + if (ptr) { + kind = AIR_CAST(gageKind *, ptr); + } + return NULL; + } + + hestCB probeKindHestCB = { + sizeof(gageKind *), + "kind", + probeParseKind, + probeParseKindDestroy + }; + + int main(int argc, char *argv[]) { char *me, *err, *outS; hestOpt *hopt=NULL; airArray *mop; + limnPolyData *pld, *pldSub; gageContext *gctx=NULL; *************** *** 39,50 **** unsigned int ncc; size_t samples[3]; int E; me = argv[0]; hestOptAdd(&hopt, "i", "nin", airTypeOther, 1, 1, &nin, NULL, ! "input volume to surface", NULL, NULL, nrrdHestNrrd); hestOptAdd(&hopt, "s", "strength", airTypeDouble, 1, 1, &strength, "0.01", "strength"); hestOptAdd(&hopt, "c", "scaling", airTypeDouble, 3, 3, scaling, "1 1 1", "amount by which to up/down-sample on each spatial axis"); --- 81,100 ---- unsigned int ncc; size_t samples[3]; + gageKind *kind; + char *itemGradS, *itemEvalS[2], *itemEvecS[2]; + int itemGrad, itemEval[2], itemEvec[2]; int E; me = argv[0]; hestOptAdd(&hopt, "i", "nin", airTypeOther, 1, 1, &nin, NULL, ! "input volume to analyze", NULL, NULL, nrrdHestNrrd); + hestOptAdd(&hopt, "k", "kind", airTypeOther, 1, 1, &kind, NULL, + "\"kind\" of volume (\"scalar\", \"vector\", \"tensor\")", + NULL, NULL, &probeKindHestCB); hestOptAdd(&hopt, "s", "strength", airTypeDouble, 1, 1, &strength, "0.01", "strength"); + hestOptAdd(&hopt, "gi", "grad item", airTypeString, 1, 1, &itemGradS, NULL, + "item for gradient vector"); hestOptAdd(&hopt, "c", "scaling", airTypeDouble, 3, 3, scaling, "1 1 1", "amount by which to up/down-sample on each spatial axis"); *************** *** 58,61 **** --- 108,113 ---- airMopAdd(mop, hopt, (airMopper)hestOptFree, airMopAlways); airMopAdd(mop, hopt, (airMopper)hestParseFree, airMopAlways); + + itemGrad = airEnumVal(kind->enm, itemGradS); pld = limnPolyDataNew(); *************** *** 73,84 **** airMopAdd(mop, gctx, (airMopper)gageContextNix, airMopAlways); ELL_3V_SET(kparm, 1, 1.0, 0.0); ! if (!(pvl = gagePerVolumeNew(gctx, nin, gageKindScl)) || gagePerVolumeAttach(gctx, pvl) || gageKernelSet(gctx, gageKernel00, nrrdKernelBCCubic, kparm) || gageKernelSet(gctx, gageKernel11, nrrdKernelBCCubicD, kparm) || gageKernelSet(gctx, gageKernel22, nrrdKernelBCCubicDD, kparm) ! || gageQueryItemOn(gctx, pvl, gageSclValue) ! || gageQueryItemOn(gctx, pvl, gageSclNormal) ! || gageQueryItemOn(gctx, pvl, gageSclGradVec) || gageQueryItemOn(gctx, pvl, gageSclHessEval) || gageQueryItemOn(gctx, pvl, gageSclHessEval2) --- 125,134 ---- airMopAdd(mop, gctx, (airMopper)gageContextNix, airMopAlways); ELL_3V_SET(kparm, 1, 1.0, 0.0); ! if (!(pvl = gagePerVolumeNew(gctx, nin, kind)) || gagePerVolumeAttach(gctx, pvl) || gageKernelSet(gctx, gageKernel00, nrrdKernelBCCubic, kparm) || gageKernelSet(gctx, gageKernel11, nrrdKernelBCCubicD, kparm) || gageKernelSet(gctx, gageKernel22, nrrdKernelBCCubicDD, kparm) ! || gageQueryItemOn(gctx, pvl, itemGrad) || gageQueryItemOn(gctx, pvl, gageSclHessEval) || gageQueryItemOn(gctx, pvl, gageSclHessEval2) *************** *** 96,104 **** if (!E) E |= seekDataSet(sctx, NULL, gctx, 0); ELL_3V_SET(samples, ! scaling[0]*nin->axis[0].size, ! scaling[1]*nin->axis[1].size, ! scaling[2]*nin->axis[2].size); if (!E) E |= seekSamplesSet(sctx, samples); ! if (!E) E |= seekItemGradientSet(sctx, gageSclGradVec); if (!E) E |= seekItemEigensystemSet(sctx, gageSclHessEval, gageSclHessEvec); --- 146,154 ---- if (!E) E |= seekDataSet(sctx, NULL, gctx, 0); ELL_3V_SET(samples, ! scaling[0]*nin->axis[kind->baseDim + 0].size, ! scaling[1]*nin->axis[kind->baseDim + 1].size, ! scaling[2]*nin->axis[kind->baseDim + 2].size); if (!E) E |= seekSamplesSet(sctx, samples); ! if (!E) E |= seekItemGradientSet(sctx, itemGrad); if (!E) E |= seekItemEigensystemSet(sctx, gageSclHessEval, gageSclHessEvec); |