diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-04-23 23:14:35 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-04-23 23:14:35 +0400 |
commit | bba974241b3972f4399c79062f145fe693f42607 (patch) | |
tree | 736a81a9fde18c9a286b284dbcf51b90d938aa7b /source/blender/blenkernel/intern/subsurf_ccg.c | |
parent | 1e6fa59e4f4447bfeecd5abb868361ae1b7ab9ab (diff) |
Subsurf: minor optimization setting edge origindex
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf_ccg.c')
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 1441137defb..482633c524d 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -3388,7 +3388,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, int index, totvert, totedge, totface; int i; int vertNum, edgeNum, faceNum; - int *vertOrigIndex, *faceOrigIndex, *polyOrigIndex, *base_polyOrigIndex; /* *edgeOrigIndex - as yet, unused */ + int *vertOrigIndex, *faceOrigIndex, *polyOrigIndex, *base_polyOrigIndex, *edgeOrigIndex; short *edgeFlags; DMFlagMat *faceFlags; int *polyidx = NULL; @@ -3398,7 +3398,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, BLI_array_declare(vertidx); #endif int loopindex, loopindex2; - int edgeSize, has_edge_origindex; + int edgeSize; int gridSize; int gridFaces, gridCuts; /*int gridSideVerts;*/ @@ -3566,7 +3566,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, faceFlags = ccgdm->faceFlags = MEM_callocN(sizeof(DMFlagMat) * totface, "faceFlags"); vertOrigIndex = DM_get_vert_data_layer(&ccgdm->dm, CD_ORIGINDEX); - /*edgeOrigIndex = DM_get_edge_data_layer(&ccgdm->dm, CD_ORIGINDEX);*/ + edgeOrigIndex = DM_get_edge_data_layer(&ccgdm->dm, CD_ORIGINDEX); faceOrigIndex = DM_get_tessface_data_layer(&ccgdm->dm, CD_ORIGINDEX); polyOrigIndex = DM_get_poly_data_layer(&ccgdm->dm, CD_ORIGINDEX); @@ -3579,9 +3579,6 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, mcol = DM_get_tessface_data_layer(&ccgdm->dm, CD_MCOL); #endif - has_edge_origindex = CustomData_has_layer(&ccgdm->dm.edgeData, CD_ORIGINDEX); - - loopindex = loopindex2 = 0; /* current loop index */ for (index = 0; index < totface; index++) { CCGFace *f = ccgdm->faceMap[index].face; @@ -3671,10 +3668,10 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, } } - if (has_edge_origindex) { - for (i = 0; i < numFinalEdges; ++i) - *(int *)DM_get_edge_data(&ccgdm->dm, edgeNum + i, - CD_ORIGINDEX) = ORIGINDEX_NONE; + if (edgeOrigIndex) { + for (i = 0; i < numFinalEdges; ++i) { + edgeOrigIndex[edgeNum + i] = ORIGINDEX_NONE; + } } for (s = 0; s < numVerts; s++) { @@ -3768,9 +3765,9 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, vertNum++; } - for (i = 0; i < numFinalEdges; ++i) { - if (has_edge_origindex) { - *(int *)DM_get_edge_data(&ccgdm->dm, edgeNum + i, CD_ORIGINDEX) = mapIndex; + if (edgeOrigIndex) { + for (i = 0; i < numFinalEdges; ++i) { + edgeOrigIndex[edgeNum + i] = mapIndex; } } |