[Bf-blender-cvs] [b1f3cf1] temp-array-modifier: Cleanup

Campbell Barton noreply at git.blender.org
Tue Aug 12 01:57:21 CEST 2014


Commit: b1f3cf1f5bc8caf60c4b386718a92c3b495afaf2
Author: Campbell Barton
Date:   Tue Aug 12 09:57:08 2014 +1000
Branches: temp-array-modifier
https://developer.blender.org/rBb1f3cf1f5bc8caf60c4b386718a92c3b495afaf2

Cleanup

===================================================================

M	source/blender/blenkernel/BKE_cdderivedmesh.h
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/modifiers/intern/MOD_array.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_cdderivedmesh.h b/source/blender/blenkernel/BKE_cdderivedmesh.h
index 02aa7f5..b0ade7b 100644
--- a/source/blender/blenkernel/BKE_cdderivedmesh.h
+++ b/source/blender/blenkernel/BKE_cdderivedmesh.h
@@ -58,9 +58,12 @@ struct DerivedMesh *CDDM_from_bmesh(struct BMesh *bm, const bool use_mdisps);
 DerivedMesh *CDDM_from_editbmesh(struct BMEditMesh *em, const bool use_mdisps, const bool use_tessface);
 
 /* merge verts  */
-/* Constants for merge_mode of CDDM_merge_verts.   Refer to cdderivedmesh.c for details.  */
-#define CDDM_MERGE_VERTS_DUMP_IF_MAPPED  1
-#define CDDM_MERGE_VERTS_DUMP_IF_EQUAL   2
+/* Enum for merge_mode of CDDM_merge_verts.
+ * Refer to cdderivedmesh.c for details. */
+enum {
+	CDDM_MERGE_VERTS_DUMP_IF_MAPPED,
+	CDDM_MERGE_VERTS_DUMP_IF_EQUAL,
+};
 DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap, const int tot_vtargetmap, const int merge_mode);
 
 /* creates a CDDerivedMesh from the given curve object */
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 5abf5db..68fb01d 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -2570,17 +2570,17 @@ void CDDM_calc_normals_tessface(DerivedMesh *dm)
 }
 
 #if 1
+
 /**
- *  Poly compare with vtargetmap
- *  Function used by #CDDM_merge_verts.
- *  The function compares poly_source after applying vtargetmap, with poly_target. 
- *  The two polys are identical if they share the same vertices in the same order, or in reverse order,
- *  but starting position loopstart may be different.
- *  The function is called with direct_reverse=1 for same order (i.e. same normal), 
- *  and may be called again with direct_reverse=-1 for reverse order.
- *  \return 1 if polys are identical,  0 if polys are different.
+ * Poly compare with vtargetmap
+ * Function used by #CDDM_merge_verts.
+ * The function compares poly_source after applying vtargetmap, with poly_target. 
+ * The two polys are identical if they share the same vertices in the same order, or in reverse order,
+ * but starting position loopstart may be different.
+ * The function is called with direct_reverse=1 for same order (i.e. same normal), 
+ * and may be called again with direct_reverse=-1 for reverse order.
+ * \return 1 if polys are identical,  0 if polys are different.
  */
-
 static int cddm_poly_compare(MLoop *mloop_array, MPoly *mpoly_source, MPoly *mpoly_target, const int *vtargetmap, const int direct_reverse)
 {
 	int vert_source, first_vert_source, vert_target;
@@ -2897,15 +2897,15 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap, const int
 		/* Can we optimise by reusing an old pmap ?  How do we know an old pmap is stale ?  */
 		/* When called by MOD_array.c, the cddm has just been created, so it has no valid pmap.   */
 		BKE_mesh_vert_poly_map_create(&cddm->pmap, &cddm->pmap_mem,
-                                      cddm->mpoly, cddm->mloop,
-                                      totvert, totpoly, totloop);
-	}  /* Done preparing for fast poly compare */
+		                              cddm->mpoly, cddm->mloop,
+		                              totvert, totpoly, totloop);
+	}  /* done preparing for fast poly compare */
 
 
 	mp = cddm->mpoly;
 	for (i = 0; i < totpoly; i++, mp++) {
 		MPoly *mp_new;
-
+		
 		ml = cddm->mloop + mp->loopstart;
 
 		/* check faces with all vertices merged */
@@ -3018,13 +3018,13 @@ DerivedMesh *CDDM_merge_verts(DerivedMesh *dm, const int *vtargetmap, const int
 		mp_new->loopstart = STACK_SIZE(mloop) - c;
 		
 		STACK_PUSH(oldp, i);
-	} /* End of the loop that tests polys   */
+	}  /* end of the loop that tests polys   */
 
 	if (poly_ghash) {
 		BLI_ghash_free(poly_ghash, NULL, NULL);
 		MEM_freeN(poly_keys);
 	}
-
+	
 	/*create new cddm*/
 	cddm2 = (CDDerivedMesh *) CDDM_from_template((DerivedMesh *)cddm, STACK_SIZE(mvert), STACK_SIZE(medge), 0, STACK_SIZE(mloop), STACK_SIZE(mpoly));
 	
diff --git a/source/blender/modifiers/intern/MOD_array.c b/source/blender/modifiers/intern/MOD_array.c
index dd9c727..adbaa3d 100644
--- a/source/blender/modifiers/intern/MOD_array.c
+++ b/source/blender/modifiers/intern/MOD_array.c
@@ -363,13 +363,14 @@ static DerivedMesh *arrayModifier_doArray(
         Scene *scene, Object *ob, DerivedMesh *dm,
         ModifierApplyFlag UNUSED(flag))
 {
+	const float eps = 1e-6f;
 	MVert *mv, *mv_prev, *result_dm_verts, *src_mvert;
 
 	MEdge *me;
 	MLoop *ml;
 	MPoly *mp;
 	int i, j, c, count;
-	float length= amd->length;
+	float length = amd->length;
 	/* offset matrix */
 	float offset[4][4];
 	float scale[3];
@@ -436,7 +437,7 @@ static DerivedMesh *arrayModifier_doArray(
 			unit_m4(obinv);
 
 		mul_m4_series(result_mat, offset,
-		             obinv, amd->offset_ob->obmat);
+		              obinv, amd->offset_ob->obmat);
 		copy_m4_m4(offset, result_mat);
 	}
 
@@ -465,13 +466,15 @@ static DerivedMesh *arrayModifier_doArray(
 	if (amd->fit_type == MOD_ARR_FITLENGTH || amd->fit_type == MOD_ARR_FITCURVE) {
 		float dist = len_v3(offset[3]);
 
-		if (dist > 1e-6f)
+		if (dist > eps) {
 			/* this gives length = first copy start to last copy end
 			 * add a tiny offset for floating point rounding errors */
-			count = (length + 1e-6f) / dist;
-		else
+			count = (length + eps) / dist;
+		}
+		else {
 			/* if the offset has no translation, just make one copy */
 			count = 1;
+		}
 	}
 
 	if (count < 1)
@@ -614,22 +617,21 @@ static DerivedMesh *arrayModifier_doArray(
 		int start_cap_start = result_nverts - start_cap_nverts - end_cap_nverts;
 		invert_m4_m4(start_offset, offset);
 		bm_merge_dm_transform(result_dm, start_cap_dm, start_offset,
-							  result_nverts - start_cap_nverts - end_cap_nverts,
-							  result_nedges - start_cap_nedges - end_cap_nedges,
-							  result_nloops - start_cap_nloops - end_cap_nloops,
-							  result_npolys - start_cap_npolys - end_cap_npolys,
-							  start_cap_nverts, start_cap_nedges, start_cap_nloops, start_cap_npolys
-							  );
+		                      result_nverts - start_cap_nverts - end_cap_nverts,
+		                      result_nedges - start_cap_nedges - end_cap_nedges,
+		                      result_nloops - start_cap_nloops - end_cap_nloops,
+		                      result_npolys - start_cap_npolys - end_cap_npolys,
+		                      start_cap_nverts, start_cap_nedges, start_cap_nloops, start_cap_npolys);
 		/* Identify doubles with first chunk */
 		if (amd->flags & MOD_ARR_MERGE) {
 			map_doubles(full_doubles_map,
-						result_dm_verts,
-						first_chunk_start,
-						first_chunk_nverts,
-						start_cap_start,
-						start_cap_nverts,
-						amd->merge_dist,
-						false);
+			            result_dm_verts,
+			            first_chunk_start,
+			            first_chunk_nverts,
+			            start_cap_start,
+			            start_cap_nverts,
+			            amd->merge_dist,
+			            false);
 		}
 	}
 
@@ -638,22 +640,21 @@ static DerivedMesh *arrayModifier_doArray(
 		int end_cap_start = result_nverts - end_cap_nverts;
 		mul_m4_m4m4(end_offset, current_offset, offset);
 		bm_merge_dm_transform(result_dm, end_cap_dm, end_offset,
-							  result_nverts - end_cap_nverts,
-							  result_nedges - end_cap_nedges,
-							  result_nloops - end_cap_nloops,
-							  result_npolys - end_cap_npolys,
-							  end_cap_nverts, end_cap_nedges, end_cap_nloops, end_cap_npolys
-							  );
+		                      result_nverts - end_cap_nverts,
+		                      result_nedges - end_cap_nedges,
+		                      result_nloops - end_cap_nloops,
+		                      result_npolys - end_cap_npolys,
+		                      end_cap_nverts, end_cap_nedges, end_cap_nloops, end_cap_npolys);
 		/* Identify doubles with last chunk */
 		if (amd->flags & MOD_ARR_MERGE) {
 			map_doubles(full_doubles_map,
-						result_dm_verts,
-						last_chunk_start,
-						last_chunk_nverts,
-						end_cap_start,
-						end_cap_nverts,
-						amd->merge_dist,
-						false);
+			            result_dm_verts,
+			            last_chunk_start,
+			            last_chunk_nverts,
+			            end_cap_start,
+			            end_cap_nverts,
+			            amd->merge_dist,
+			            false);
 		}
 	}  /* Done capping */
 
@@ -661,8 +662,9 @@ static DerivedMesh *arrayModifier_doArray(
 	tot_doubles = 0;
 	if (full_doubles_map) {
 		for (i = 0; i < result_nverts; i++) {
-			if (full_doubles_map[i]!=-1)
+			if (full_doubles_map[i] != -1) {
 				tot_doubles++;
+			}
 		}
 		if (tot_doubles > 0) {
 			result_dm = CDDM_merge_verts(result_dm, full_doubles_map, tot_doubles, CDDM_MERGE_VERTS_DUMP_IF_EQUAL);




More information about the Bf-blender-cvs mailing list