- bug fix, crash with edges with no face in subsurf

This commit is contained in:
Daniel Dunbar 2005-06-24 05:30:41 +00:00
parent 83f988c279
commit eb41fcdf23

@ -1848,24 +1848,27 @@ static void ccgSubSurf__sync(CCGSubSurf *ss) {
}
for (ptrIdx=0; ptrIdx<numEffectedE; ptrIdx++) {
CCGEdge *e = (CCGEdge*) effectedE[ptrIdx];
CCGFace *fLast = e->faces[e->numFaces-1];
int x;
for (i=0; i<e->numFaces-1; i++) {
CCGFace *f = e->faces[i];
if (e->numFaces) {
CCGFace *fLast = e->faces[e->numFaces-1];
int x;
for (x=1; x<edgeSize-1; x++) {
NormAdd(_face_getIFNoEdge(fLast, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset),
_face_getIFNoEdge(f, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset));
for (i=0; i<e->numFaces-1; i++) {
CCGFace *f = e->faces[i];
for (x=1; x<edgeSize-1; x++) {
NormAdd(_face_getIFNoEdge(fLast, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset),
_face_getIFNoEdge(f, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset));
}
}
}
for (i=0; i<e->numFaces-1; i++) {
CCGFace *f = e->faces[i];
for (i=0; i<e->numFaces-1; i++) {
CCGFace *f = e->faces[i];
for (x=1; x<edgeSize-1; x++) {
NormCopy(_face_getIFNoEdge(f, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset),
_face_getIFNoEdge(fLast, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset));
for (x=1; x<edgeSize-1; x++) {
NormCopy(_face_getIFNoEdge(f, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset),
_face_getIFNoEdge(fLast, e, lvl, x, 0, subdivLevels, vertDataSize, normalDataOffset));
}
}
}
}