[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45144] trunk/blender: Patch: [#30652] Influence slider for Lattice Modifier

Thomas Dinges blender at dingto.org
Mon Mar 26 00:14:32 CEST 2012


Revision: 45144
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45144
Author:   dingto
Date:     2012-03-25 22:14:21 +0000 (Sun, 25 Mar 2012)
Log Message:
-----------
Patch: [#30652] Influence slider for Lattice Modifier

* This patch adds a influence slider for the lattice modifier, which affects the strength of the deformation. 

Patch by Patrick Boelens (senshi), thanks a lot! 

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/BKE_lattice.h
    trunk/blender/source/blender/blenkernel/intern/lattice.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/makesdna/DNA_modifier_types.h
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c
    trunk/blender/source/blender/modifiers/intern/MOD_lattice.c

Modified: trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_data_modifier.py	2012-03-25 22:14:21 UTC (rev 45144)
@@ -318,6 +318,9 @@
         col = split.column()
         col.label(text="Vertex Group:")
         col.prop_search(md, "vertex_group", ob, "vertex_groups", text="")
+        
+        layout.separator()
+        layout.prop(md, "influence", slider=True)
 
     def MASK(self, layout, ob, md):
         split = layout.split()

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2012-03-25 22:14:21 UTC (rev 45144)
@@ -42,7 +42,7 @@
  * and keep comment above the defines.
  * Use STRINGIFY() rather than defining with quotes */
 #define BLENDER_VERSION			262
-#define BLENDER_SUBVERSION		2
+#define BLENDER_SUBVERSION		3
 
 #define BLENDER_MINVERSION		250
 #define BLENDER_MINSUBVERSION	0

Modified: trunk/blender/source/blender/blenkernel/BKE_lattice.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_lattice.h	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/blenkernel/BKE_lattice.h	2012-03-25 22:14:21 UTC (rev 45144)
@@ -63,7 +63,7 @@
 
 void lattice_deform_verts(struct Object *laOb, struct Object *target,
                           struct DerivedMesh *dm, float (*vertexCos)[3],
-                          int numVerts, const char *vgroup);
+                          int numVerts, const char *vgroup, float influence);
 void armature_deform_verts(struct Object *armOb, struct Object *target,
                            struct DerivedMesh *dm, float (*vertexCos)[3],
                            float (*defMats)[3][3], int numVerts, int deformflag,

Modified: trunk/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lattice.c	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/blenkernel/intern/lattice.c	2012-03-25 22:14:21 UTC (rev 45144)
@@ -153,7 +153,7 @@
 
 		copy_m4_m4(mat, ltOb->obmat);
 		unit_m4(ltOb->obmat);
-		lattice_deform_verts(ltOb, NULL, NULL, vertexCos, uNew*vNew*wNew, NULL);
+		lattice_deform_verts(ltOb, NULL, NULL, vertexCos, uNew*vNew*wNew, NULL, 1.0f);
 		copy_m4_m4(ltOb->obmat, mat);
 
 		lt->typeu = typeu;
@@ -785,7 +785,7 @@
 }
 
 void lattice_deform_verts(Object *laOb, Object *target, DerivedMesh *dm,
-                          float (*vertexCos)[3], int numVerts, const char *vgroup)
+                          float (*vertexCos)[3], int numVerts, const char *vgroup, float influence)
 {
 	int a;
 	int use_vgroups;
@@ -824,13 +824,13 @@
 				weight= defvert_find_weight(dvert, index);
 
 				if (weight > 0.0f)
-					calc_latt_deform(laOb, vertexCos[a], weight);
+					calc_latt_deform(laOb, vertexCos[a], weight*influence);
 			}
 		}
 	}
 	else {
 		for (a = 0; a < numVerts; a++) {
-			calc_latt_deform(laOb, vertexCos[a], 1.0f);
+			calc_latt_deform(laOb, vertexCos[a], influence);
 		}
 	}
 	end_latt_deform(laOb);
@@ -843,7 +843,7 @@
 
 		for (dl=dispbase->first; dl; dl=dl->next) {
 			lattice_deform_verts(ob->parent, ob, NULL,
-								 (float(*)[3]) dl->verts, dl->nr, NULL);
+								 (float(*)[3]) dl->verts, dl->nr, NULL, 1.0f);
 		}
 
 		return 1;

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2012-03-25 22:14:21 UTC (rev 45144)
@@ -13329,7 +13329,23 @@
 			}
 		}
 	}
+	
+	if (main->versionfile < 262 || (main->versionfile == 262 && main->subversionfile < 3))
+	{
+		Object *ob;
+		ModifierData *md;
+	
+		for(ob = main->object.first; ob; ob = ob->id.next) {
+			for(md=ob->modifiers.first; md; md=md->next) {
+				if(md->type == eModifierType_Lattice) {
+					LatticeModifierData *lmd = (LatticeModifierData *)md;
+					lmd->influence = 1.0f;
+				}
+			}
+		}
+	}
 
+
 	{
 		/* Default for old files is to save particle rotations to pointcache */
 		ParticleSettings *part;

Modified: trunk/blender/source/blender/makesdna/DNA_modifier_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/makesdna/DNA_modifier_types.h	2012-03-25 22:14:21 UTC (rev 45144)
@@ -135,6 +135,8 @@
 
 	struct Object *object;
 	char name[64];			/* optional vertexgroup name, MAX_VGROUP_NAME */
+	float influence;
+	char pad[4];
 } LatticeModifierData;
 
 typedef struct CurveModifierData {

Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2012-03-25 22:14:21 UTC (rev 45144)
@@ -960,6 +960,12 @@
 	                         "Name of Vertex Group which determines influence of modifier per point");
 	RNA_def_property_string_funcs(prop, NULL, NULL, "rna_LatticeModifier_vgroup_set");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");
+	
+	prop = RNA_def_property(srna, "influence", PROP_FLOAT, PROP_NONE);
+	RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
+	RNA_def_property_ui_range(prop, 0, 1, 10, 2);
+	RNA_def_property_ui_text(prop, "Influence", "Strength of modifier effect");
+	RNA_def_property_update(prop, 0, "rna_Modifier_update");
 }
 
 static void rna_def_modifier_curve(BlenderRNA *brna)

Modified: trunk/blender/source/blender/modifiers/intern/MOD_lattice.c
===================================================================
--- trunk/blender/source/blender/modifiers/intern/MOD_lattice.c	2012-03-25 21:18:44 UTC (rev 45143)
+++ trunk/blender/source/blender/modifiers/intern/MOD_lattice.c	2012-03-25 22:14:21 UTC (rev 45144)
@@ -40,7 +40,6 @@
 #include "BLI_utildefines.h"
 #include "BLI_string.h"
 
-
 #include "BKE_cdderivedmesh.h"
 #include "BKE_lattice.h"
 #include "BKE_modifier.h"
@@ -49,6 +48,11 @@
 
 #include "MOD_util.h"
 
+static void initData(ModifierData *md)
+{
+	LatticeModifierData *lmd = (LatticeModifierData*) md;
+	lmd->influence = 1.0f;
+}
 
 static void copyData(ModifierData *md, ModifierData *target)
 {
@@ -115,7 +119,7 @@
 	modifier_vgroup_cache(md, vertexCos); /* if next modifier needs original vertices */
 	
 	lattice_deform_verts(lmd->object, ob, derivedData,
-	                     vertexCos, numVerts, lmd->name);
+	                     vertexCos, numVerts, lmd->name, lmd->influence);
 }
 
 static void deformVertsEM(
@@ -146,7 +150,7 @@
 	/* deformMatricesEM */  NULL,
 	/* applyModifier */     NULL,
 	/* applyModifierEM */   NULL,
-	/* initData */          NULL,
+	/* initData */          initData,
 	/* requiredDataMask */  requiredDataMask,
 	/* freeData */          NULL,
 	/* isDisabled */        isDisabled,




More information about the Bf-blender-cvs mailing list