[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16744] branches/soc-2008-jaguarandi/ source/blender: Fixed a UI bug on shrinkwrap constraint
André Pinto
andresusanopinto at gmail.com
Fri Sep 26 15:47:41 CEST 2008
Revision: 16744
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16744
Author: jaguarandi
Date: 2008-09-26 15:47:41 +0200 (Fri, 26 Sep 2008)
Log Message:
-----------
Fixed a UI bug on shrinkwrap constraint
Fixed vertexs weights on simpledeform modifier (they weren't working if the modifier was the first on stack, since it wasnt receiving a DerivedMesh with vertex weights)
Modified Paths:
--------------
branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c
branches/soc-2008-jaguarandi/source/blender/src/buttons_object.c
Modified: branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c 2008-09-26 08:58:15 UTC (rev 16743)
+++ branches/soc-2008-jaguarandi/source/blender/blenkernel/intern/modifier.c 2008-09-26 13:47:41 UTC (rev 16744)
@@ -7380,16 +7380,6 @@
memcpy(tsmd->limit, smd->limit, sizeof(tsmd->limit));
}
-static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
-{
- SimpleDeformModifier_do((SimpleDeformModifierData*)md, ob, derivedData, vertexCos, numVerts);
-}
-
-static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
-{
- SimpleDeformModifier_do((SimpleDeformModifierData*)md, ob, derivedData, vertexCos, numVerts);
-}
-
static CustomDataMask simpledeformModifier_requiredDataMask(ModifierData *md)
{
SimpleDeformModifierData *smd = (SimpleDeformModifierData *)md;
@@ -7416,6 +7406,57 @@
dag_add_relation(forest, dag_get_node(forest, smd->origin), obNode, DAG_RL_OB_DATA, "SimpleDeform Modifier");
}
+static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+{
+ DerivedMesh *dm = NULL;
+ CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md);
+
+ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
+ if(dataMask)
+ {
+ if(derivedData) dm = CDDM_copy(derivedData);
+ else if(ob->type==OB_MESH) dm = CDDM_from_mesh(ob->data, ob);
+ else return;
+
+ if(dataMask & CD_MVERT)
+ {
+ CDDM_apply_vert_coords(dm, vertexCos);
+ CDDM_calc_normals(dm);
+ }
+ }
+
+ SimpleDeformModifier_do((SimpleDeformModifierData*)md, ob, dm, vertexCos, numVerts);
+
+ if(dm)
+ dm->release(dm);
+
+}
+
+static void simpledeformModifier_deformVertsEM(ModifierData *md, Object *ob, EditMesh *editData, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
+{
+ DerivedMesh *dm = NULL;
+ CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md);
+
+ /* We implement requiredDataMask but thats not really usefull since mesh_calc_modifiers pass a NULL derivedData or without the modified vertexs applied */
+ if(dataMask)
+ {
+ if(derivedData) dm = CDDM_copy(derivedData);
+ else if(ob->type==OB_MESH) dm = CDDM_from_editmesh(editData, ob->data);
+ else return;
+
+ if(dataMask & CD_MVERT)
+ {
+ CDDM_apply_vert_coords(dm, vertexCos);
+ CDDM_calc_normals(dm);
+ }
+ }
+
+ SimpleDeformModifier_do((SimpleDeformModifierData*)md, ob, dm, vertexCos, numVerts);
+
+ if(dm)
+ dm->release(dm);
+}
+
/***/
static ModifierTypeInfo typeArr[NUM_MODIFIER_TYPES];
Modified: branches/soc-2008-jaguarandi/source/blender/src/buttons_object.c
===================================================================
--- branches/soc-2008-jaguarandi/source/blender/src/buttons_object.c 2008-09-26 08:58:15 UTC (rev 16743)
+++ branches/soc-2008-jaguarandi/source/blender/src/buttons_object.c 2008-09-26 13:47:41 UTC (rev 16744)
@@ -1747,7 +1747,7 @@
bShrinkwrapConstraint *data = con->data;
char shrinktypemenu[]="Shrinkwrap type%t|nearest surface point %x0|projection %x1|nearest vertex %x2";
- height = 60;
+ height = 78;
if(data->shrinkType == MOD_SHRINKWRAP_PROJECT)
height += 18;
More information about the Bf-blender-cvs
mailing list