Commit: 1d041aa677d86c80e8684e845e1e4ef1032162ed Author: Sybren A. Stüvel Date: Thu Apr 26 17:05:14 2018 +0200 Branches: temp-modifier-rm-cddm https://developer.blender.org/rB1d041aa677d86c80e8684e845e1e4ef1032162ed
Handled most of Cambpell's review comments =================================================================== M source/blender/modifiers/intern/MOD_armature.c M source/blender/modifiers/intern/MOD_build.c =================================================================== diff --git a/source/blender/modifiers/intern/MOD_armature.c b/source/blender/modifiers/intern/MOD_armature.c index 086e72b9278..4c12bd93bc6 100644 --- a/source/blender/modifiers/intern/MOD_armature.c +++ b/source/blender/modifiers/intern/MOD_armature.c @@ -135,19 +135,19 @@ static void deformVertsEM( Mesh *mesh, float (*vertexCos)[3], int numVerts) { ArmatureModifierData *amd = (ArmatureModifierData *) md; - Mesh *to_use = mesh; + Mesh *mesh_src = mesh; /* TODO(sybren): possibly lift this code to modifier.c and use it for all modifiers */ if (!mesh) { struct BMeshToMeshParams params = {0}; - to_use = BKE_libblock_alloc_notest(ID_ME); - BKE_mesh_init(to_use); - BM_mesh_bm_to_me(em->bm, to_use, ¶ms); + mesh_src = BKE_libblock_alloc_notest(ID_ME); + BKE_mesh_init(mesh_src); + BM_mesh_bm_to_me(em->bm, mesh_src, ¶ms); } modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */ - armature_deform_verts(amd->object, ob, to_use, vertexCos, NULL, + armature_deform_verts(amd->object, ob, mesh_src, vertexCos, NULL, numVerts, amd->deformflag, (float(*)[3])amd->prevCos, amd->defgrp_name); /* free cache */ @@ -157,8 +157,8 @@ static void deformVertsEM( } if (!mesh) { - BKE_mesh_free(to_use); - MEM_freeN(to_use); + BKE_mesh_free(mesh_src); + MEM_freeN(mesh_src); } } diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c index b0f54b1baa5..72f733478cf 100644 --- a/source/blender/modifiers/intern/MOD_build.c +++ b/source/blender/modifiers/intern/MOD_build.c @@ -86,9 +86,9 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, { Mesh *result; /* TODO(sybren): remove and replace with direct modification of mesh? */ BuildModifierData *bmd = (BuildModifierData *) md; - unsigned int i, j, k; - unsigned int numFaces_dst, numEdges_dst, numLoops_dst = 0; - unsigned int *vertMap, *edgeMap, *faceMap; + int i, j, k; + int numFaces_dst, numEdges_dst, numLoops_dst = 0; + int *vertMap, *edgeMap, *faceMap; float frac; MPoly *mpoly_dst; MLoop *ml_dst, *ml_src /*, *mloop_dst */; @@ -98,9 +98,9 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, /* maps edge indices in old mesh to indices in new mesh */ GHash *edgeHash = BLI_ghash_int_new("build ed apply gh"); - const unsigned int numVert_src = mesh->totvert; - const unsigned int numEdge_src = mesh->totedge; - const unsigned int numPoly_src = mesh->totpoly; + const int numVert_src = mesh->totvert; + const int numEdge_src = mesh->totedge; + const int numPoly_src = mesh->totpoly; MPoly *mpoly_src = mesh->mpoly; MLoop *mloop_src = mesh->mloop; MEdge *medge_src = mesh->medge; @@ -110,9 +110,9 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, edgeMap = MEM_malloc_arrayN(numEdge_src, sizeof(*edgeMap), "build modifier edgeMap"); faceMap = MEM_malloc_arrayN(numPoly_src, sizeof(*faceMap), "build modifier faceMap"); - range_vn_u(vertMap, numVert_src, 0); - range_vn_u(edgeMap, numEdge_src, 0); - range_vn_u(faceMap, numPoly_src, 0); + range_vn_i(vertMap, numVert_src, 0); + range_vn_i(edgeMap, numEdge_src, 0); + range_vn_i(faceMap, numPoly_src, 0); struct Scene *scene = DEG_get_input_scene(depsgraph); frac = (BKE_scene_frame_get(scene) - bmd->start) / bmd->length; @@ -124,13 +124,11 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, numFaces_dst = numPoly_src * frac; numEdges_dst = numEdge_src * frac; - BKE_mesh_tessface_ensure(mesh); - /* if there's at least one face, build based on faces */ if (numFaces_dst) { MPoly *mpoly, *mp; MLoop *ml, *mloop; - unsigned int new_idx; + int new_idx; if (bmd->flag & MOD_BUILD_FLAG_RANDOMIZE) { BLI_array_randomize(faceMap, sizeof(*faceMap), @@ -149,8 +147,8 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, for (j = 0; j < mp->totloop; j++, ml++) { void **val_p; - if (!BLI_ghash_ensure_p(vertHash, SET_UINT_IN_POINTER(ml->v), &val_p)) { - *val_p = SET_UINT_IN_POINTER(new_idx); + if (!BLI_ghash_ensure_p(vertHash, SET_INT_IN_POINTER(ml->v), &val_p)) { + *val_p = SET_INT_IN_POINTER(new_idx); new_idx++; } } @@ -166,10 +164,10 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, for (i = 0; i < numEdge_src; i++) { MEdge *me = medge_src + i; - if (BLI_ghash_haskey(vertHash, SET_UINT_IN_POINTER(me->v1)) && - BLI_ghash_haskey(vertHash, SET_UINT_IN_POINTER(me->v2))) + if (BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me->v1)) && + BLI_ghash_haskey(vertHash, SET_INT_IN_POINTER(me->v2))) { - BLI_ghash_insert(edgeHash, SET_UINT_IN_POINTER(i), SET_UINT_IN_POINTER(new_idx)); + BLI_ghash_insert(edgeHash, SET_INT_IN_POINTER(i), SET_INT_IN_POINTER(new_idx)); new_idx++; } } @@ -177,7 +175,7 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, } else if (numEdges_dst) { MEdge *medge, *me; - unsigned int new_idx; + int new_idx; if (bmd->flag & MOD_BUILD_FLAG_RANDOMIZE) BLI_array_randomize(edgeMap, sizeof(*edgeMap), @@ -193,12 +191,12 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, void **val_p; me = medge + edgeMap[i]; - if (!BLI_ghash_ensure_p(vertHash, SET_UINT_IN_POINTER(me->v1), &val_p)) { - *val_p = SET_UINT_IN_POINTER(new_idx); + if (!BLI_ghash_ensure_p(vertHash, SET_INT_IN_POINTER(me->v1), &val_p)) { + *val_p = SET_INT_IN_POINTER(new_idx); new_idx++; } - if (!BLI_ghash_ensure_p(vertHash, SET_UINT_IN_POINTER(me->v2), &val_p)) { - *val_p = SET_UINT_IN_POINTER(new_idx); + if (!BLI_ghash_ensure_p(vertHash, SET_INT_IN_POINTER(me->v2), &val_p)) { + *val_p = SET_INT_IN_POINTER(new_idx); new_idx++; } } @@ -235,8 +233,8 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, GHASH_ITER (gh_iter, vertHash) { MVert source; MVert *dest; - unsigned int oldIndex = GET_UINT_FROM_POINTER(BLI_ghashIterator_getKey(&gh_iter)); - unsigned int newIndex = GET_UINT_FROM_POINTER(BLI_ghashIterator_getValue(&gh_iter)); + int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&gh_iter)); + int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(&gh_iter)); source = mvert_src[oldIndex]; dest = &result->mvert[newIndex]; @@ -249,8 +247,8 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, GHASH_ITER (gh_iter, edgeHash) { MEdge source; MEdge *dest; - unsigned int oldIndex = GET_UINT_FROM_POINTER(BLI_ghashIterator_getKey(&gh_iter)); - unsigned int newIndex = GET_UINT_FROM_POINTER(BLI_ghashIterator_getValue(&gh_iter)); + int oldIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getKey(&gh_iter)); + int newIndex = GET_INT_FROM_POINTER(BLI_ghashIterator_getValue(&gh_iter)); BLI_assert(newIndex < BLI_ghash_len(edgeHash)); source = medge_src[oldIndex]; @@ -258,8 +256,8 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, CustomData_copy_data(&mesh->edata, &result->edata, oldIndex, newIndex, 1); *dest = source; - dest->v1 = GET_UINT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_UINT_IN_POINTER(source.v1))); - dest->v2 = GET_UINT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_UINT_IN_POINTER(source.v2))); + dest->v1 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v1))); + dest->v2 = GET_INT_FROM_POINTER(BLI_ghash_lookup(vertHash, SET_INT_IN_POINTER(source.v2))); } mpoly_dst = result->mpoly; @@ -293,8 +291,6 @@ static Mesh *applyModifier(ModifierData *md, struct Depsgraph *depsgraph, MEM_freeN(edgeMap); MEM_freeN(faceMap); - BKE_mesh_tessface_ensure(result); - /* TODO(sybren): also copy flags & tags? */ return result; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs