[Bf-blender-cvs] [23d1079] soc-2014-remesh: Minor bug fixes and several correction.

Alexander Pinzon Fernandez noreply at git.blender.org
Thu Jun 19 23:29:37 CEST 2014


Commit: 23d10799c7836fcc3b9fea74df5693d317760015
Author: Alexander Pinzon Fernandez
Date:   Thu Jun 19 15:25:18 2014 -0500
https://developer.blender.org/rB23d10799c7836fcc3b9fea74df5693d317760015

Minor bug fixes and several correction.

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

M	source/blender/modifiers/intern/MOD_quadremesh.c

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

diff --git a/source/blender/modifiers/intern/MOD_quadremesh.c b/source/blender/modifiers/intern/MOD_quadremesh.c
index 6e0d6ee..2d1e582 100644
--- a/source/blender/modifiers/intern/MOD_quadremesh.c
+++ b/source/blender/modifiers/intern/MOD_quadremesh.c
@@ -229,43 +229,6 @@ static void laplacianDeformPreview(LaplacianSystem *sys)
 #endif
 }
 
-static void QuadRemeshModifier_do(
-	QuadRemeshModifierData *qmd, Object *ob, DerivedMesh *dm,
-	float(*vertexCos)[3], int numVerts)
-{
-	float(*filevertexCos)[3];
-	int sysdif, i;
-	LaplacianSystem *sys = NULL;
-	int defgrp_index;
-	MDeformVert *dvert = NULL;
-	MDeformVert *dv = NULL;
-	float mmin = 1000, mmax = 0;
-	float y;
-
-	if (numVerts == 0) return;
-	if (strlen(qmd->anchor_grp_name) < 3) return;
-	sys = initSystem(qmd, ob, dm, vertexCos, numVerts);
-	laplacianDeformPreview(sys);
-
-	if (!defgroup_find_name(ob, "QuadRemeshGroup")) {
-		BKE_defgroup_new(ob, "QuadRemeshGroup");
-		modifier_get_vgroup(ob, dm, "QuadRemeshGroup", &dvert, &defgrp_index);
-		BLI_assert(dvert != NULL);
-		dv = dvert;
-		for (i = 0; i < numVerts; i++) {
-			mmin = min(mmin, sys->U_field[i]);
-			mmax = max(mmax, sys->U_field[i]);
-		}
-
-		for (i = 0; i < numVerts; i++) {
-			y = (sys->U_field[i] - mmin) / (mmax - mmin);
-			defvert_add_index_notest(dv, defgrp_index, y);
-			dv++;
-		}
-
-	}
-}
-
 static LaplacianSystem * initSystem(QuadRemeshModifierData *qmd, Object *ob, DerivedMesh *dm,
 	float(*vertexCos)[3], int numVerts)
 {
@@ -277,9 +240,9 @@ static LaplacianSystem * initSystem(QuadRemeshModifierData *qmd, Object *ob, Der
 	MDeformVert *dv = NULL;
 	LaplacianSystem *sys = NULL;
 
-	
-	int *constraints = MEM_mallocN(sizeof(int)* numVerts, __func__);  
-	float *weights = MEM_mallocN(sizeof(float)* numVerts, __func__);  
+
+	int *constraints = MEM_mallocN(sizeof(int)* numVerts, __func__);
+	float *weights = MEM_mallocN(sizeof(float)* numVerts, __func__);
 	MFace *tessface;
 
 	modifier_get_vgroup(ob, dm, qmd->anchor_grp_name, &dvert, &defgrp_index);
@@ -305,7 +268,7 @@ static LaplacianSystem * initSystem(QuadRemeshModifierData *qmd, Object *ob, Der
 	sys = initLaplacianSystem(numVerts, dm->getNumEdges(dm), dm->getNumTessFaces(dm), total_features, qmd->anchor_grp_name);
 
 	memcpy(sys->co, vertexCos, sizeof(float[3]) * numVerts);
-	memcpy(sys->constraints, constraints, sizeof(int) * numVerts);
+	memcpy(sys->constraints, constraints, sizeof(int)* numVerts);
 	memcpy(sys->weights, weights, sizeof(float)* numVerts);
 	MEM_freeN(weights);
 	MEM_freeN(constraints);
@@ -315,7 +278,44 @@ static LaplacianSystem * initSystem(QuadRemeshModifierData *qmd, Object *ob, Der
 		memcpy(&sys->faces[i], &tessface[i].v1, sizeof(*sys->faces));
 	}
 	return sys;
-	
+
+}
+
+static void QuadRemeshModifier_do(
+	QuadRemeshModifierData *qmd, Object *ob, DerivedMesh *dm,
+	float(*vertexCos)[3], int numVerts)
+{
+	float(*filevertexCos)[3];
+	int sysdif, i;
+	LaplacianSystem *sys = NULL;
+	int defgrp_index;
+	MDeformVert *dvert = NULL;
+	MDeformVert *dv = NULL;
+	float mmin = 1000, mmax = 0;
+	float y;
+
+	if (numVerts == 0) return;
+	if (strlen(qmd->anchor_grp_name) < 3) return;
+	sys = initSystem(qmd, ob, dm, vertexCos, numVerts);
+	laplacianDeformPreview(sys);
+
+	if (!defgroup_find_name(ob, "QuadRemeshGroup")) {
+		BKE_defgroup_new(ob, "QuadRemeshGroup");
+		modifier_get_vgroup(ob, dm, "QuadRemeshGroup", &dvert, &defgrp_index);
+		BLI_assert(dvert != NULL);
+		dv = dvert;
+		for (i = 0; i < numVerts; i++) {
+			mmin = min(mmin, sys->U_field[i]);
+			mmax = max(mmax, sys->U_field[i]);
+		}
+
+		for (i = 0; i < numVerts; i++) {
+			y = (sys->U_field[i] - mmin) / (mmax - mmin);
+			defvert_add_index_notest(dv, defgrp_index, y);
+			dv++;
+		}
+
+	}
 }




More information about the Bf-blender-cvs mailing list