[Bf-blender-cvs] [1d041aa677d] temp-modifier-rm-cddm: Handled most of Cambpell's review comments
Sybren A. Stüvel
noreply at git.blender.org
Thu Apr 26 17:22:21 CEST 2018
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;
}
More information about the Bf-blender-cvs
mailing list