|
From: <kin...@us...> - 2004-02-10 09:30:07
|
Update of /cvsroot/teem/teem/src/limn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29762 Modified Files: limn.h renderLimn.c transform.c Log Message: final debugging Index: limn.h =================================================================== RCS file: /cvsroot/teem/teem/src/limn/limn.h,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** limn.h 9 Feb 2004 22:48:01 -0000 1.46 --- limn.h 10 Feb 2004 09:26:52 -0000 1.47 *************** *** 443,446 **** --- 443,447 ---- extern int limnObjectDepthSortParts(limnObject *obj); extern int limnObjectDepthSortFaces(limnObject *obj); + extern int limnObjectFaceReverse(limnObject *obj); /* renderLimn.c */ Index: renderLimn.c =================================================================== RCS file: /cvsroot/teem/teem/src/limn/renderLimn.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** renderLimn.c 10 Feb 2004 04:42:18 -0000 1.19 --- renderLimn.c 10 Feb 2004 09:26:53 -0000 1.20 *************** *** 28,35 **** --- 28,37 ---- E = 0; if (!E) E |= limnCameraUpdate(cam); + /* fprintf(stderr, "%s: true up = %g %g %g\n", me, -cam->V[0], -cam->V[1], -cam->V[2]); fprintf(stderr, "%s: true right = %g %g %g\n", me, cam->U[0], cam->U[1], cam->U[2]); + */ if (!E) E |= limnObjectHomog(obj, limnSpaceWorld); if (!E) E |= limnObjectNormals(obj, limnSpaceWorld); Index: transform.c =================================================================== RCS file: /cvsroot/teem/teem/src/limn/transform.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** transform.c 10 Feb 2004 04:42:18 -0000 1.19 --- transform.c 10 Feb 2004 09:26:53 -0000 1.20 *************** *** 309,317 **** obj->faceSort = (int*)calloc(obj->faceNum, sizeof(int)); for (faceIdx=0; faceIdx<obj->faceNum; faceIdx++) { ! face = obj->face + faceIdx; part = obj->part + face->partIdx; face->depth = 0; for (vii=0; vii<face->sideNum; vii++) { ! vert = obj->vert + part->vertIdx[vii]; face->depth += vert->screen[2]; } --- 309,317 ---- obj->faceSort = (int*)calloc(obj->faceNum, sizeof(int)); for (faceIdx=0; faceIdx<obj->faceNum; faceIdx++) { ! face = obj->face + faceIdx; part = obj->part + face->partIdx; face->depth = 0; for (vii=0; vii<face->sideNum; vii++) { ! vert = obj->vert + part->vertIdx[face->vertIdxIdx[vii]]; face->depth += vert->screen[2]; } *************** *** 326,327 **** --- 326,360 ---- } + int + limnObjectFaceReverse(limnObject *obj) { + char me[]="limnObjectFaceReverse", err[AIR_STRLEN_MED]; + limnFace *face; int faceIdx; + limnPart *part; + int *buff, sii; + + if (!obj) { + sprintf(err, "%s: got NULL pointer", me); + biffAdd(LIMN, err); return 1; + } + buff = NULL; + for (faceIdx=0; faceIdx<obj->faceNum; faceIdx++) { + face = obj->face + faceIdx; + part = obj->part + face->partIdx; + buff = (int *)calloc(face->sideNum, sizeof(int)); + if (!(buff)) { + sprintf(err, "%s: couldn't allocate %d side buffer for face %d\n", + me, face->sideNum, faceIdx); + biffAdd(LIMN, err); return 1; + } + memcpy(buff, face->vertIdxIdx, face->sideNum*sizeof(int)); + for (sii=0; sii<face->sideNum; sii++) { + face->vertIdxIdx[sii] = buff[face->sideNum-1-sii]; + } + memcpy(buff, face->edgeIdxIdx, face->sideNum*sizeof(int)); + for (sii=0; sii<face->sideNum; sii++) { + face->edgeIdxIdx[sii] = buff[face->sideNum-1-sii]; + } + free(buff); + } + return 0; + } |