[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