[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, &params);
+		mesh_src = BKE_libblock_alloc_notest(ID_ME);
+		BKE_mesh_init(mesh_src);
+		BM_mesh_bm_to_me(em->bm, mesh_src, &params);
 	}
 
 	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