[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