Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pinzon <apinzonf@gmail.com>2013-11-24 00:00:49 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-24 00:10:42 +0400
commit673bd9a009062807c16cc31a263018737c148a96 (patch)
tree4ab6bc0cf8d9a7f6fb60b4ea2d61a6374c97794d /source/blender/makesrna/intern/rna_modifier.c
parent4c52e737df39e538d3b41a232035a4a1e240505d (diff)
Mesh Modifiers: Added Laplacian Deform
Part of soc-2013-sketch_mesh branch See: http://wiki.blender.org/index.php/User:Apinzonf/Doc:2.6/Manual/Modifiers/Deform/Laplacian_Deform
Diffstat (limited to 'source/blender/makesrna/intern/rna_modifier.c')
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index eee7692e2ed..9df18961a82 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -87,6 +87,7 @@ EnumPropertyItem modifier_type_items[] = {
{eModifierType_Displace, "DISPLACE", ICON_MOD_DISPLACE, "Displace", ""},
{eModifierType_Hook, "HOOK", ICON_HOOK, "Hook", ""},
{eModifierType_LaplacianSmooth, "LAPLACIANSMOOTH", ICON_MOD_SMOOTH, "Laplacian Smooth", ""},
+ {eModifierType_LaplacianDeform, "LAPLACIANDEFORM", ICON_MOD_MESHDEFORM, "Laplacian Deform", ""},
{eModifierType_Lattice, "LATTICE", ICON_MOD_LATTICE, "Lattice", ""},
{eModifierType_MeshDeform, "MESH_DEFORM", ICON_MOD_MESHDEFORM, "Mesh Deform", ""},
{eModifierType_Shrinkwrap, "SHRINKWRAP", ICON_MOD_SHRINKWRAP, "Shrinkwrap", ""},
@@ -238,6 +239,8 @@ static StructRNA *rna_Modifier_refine(struct PointerRNA *ptr)
return &RNA_UVWarpModifier;
case eModifierType_MeshCache:
return &RNA_MeshCacheModifier;
+ case eModifierType_LaplacianDeform:
+ return &RNA_LaplacianDeformModifier;
/* Default */
case eModifierType_None:
case eModifierType_ShapeKey:
@@ -786,6 +789,18 @@ static void rna_UVWarpModifier_uvlayer_set(PointerRNA *ptr, const char *value)
rna_object_uvlayer_name_set(ptr, value, umd->uvlayer_name, sizeof(umd->uvlayer_name));
}
+static void rna_LaplacianDeformModifier_vgroup_set(PointerRNA *ptr, const char *value)
+{
+ LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)ptr->data;
+ rna_object_vgroup_name_set(ptr, value, lmd->anchor_grp_name, sizeof(lmd->anchor_grp_name));
+}
+
+static int rna_LaplacianDeformModifier_is_bind_get(PointerRNA *ptr)
+{
+ LaplacianDeformModifierData *lmd = (LaplacianDeformModifierData *)ptr->data;
+ return ((lmd->flag & MOD_LAPLACIANDEFORM_BIND) && (lmd->cache_system != NULL));
+}
+
#else
static PropertyRNA *rna_def_property_subdivision_common(StructRNA *srna, const char type[])
@@ -3681,6 +3696,36 @@ static void rna_def_modifier_meshcache(BlenderRNA *brna)
RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
+static void rna_def_modifier_laplaciandeform(BlenderRNA *brna)
+{
+ StructRNA *srna;
+ PropertyRNA *prop;
+
+ srna = RNA_def_struct(brna, "LaplacianDeformModifier", "Modifier");
+ RNA_def_struct_ui_text(srna, "Laplacian Deform Modifier", "Mesh deform modifier");
+ RNA_def_struct_sdna(srna, "LaplacianDeformModifierData");
+ RNA_def_struct_ui_icon(srna, ICON_MOD_MESHDEFORM);
+
+ prop = RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE);
+ RNA_def_property_string_sdna(prop, NULL, "anchor_grp_name");
+ RNA_def_property_ui_text(prop, "Vertex Group for Anchors",
+ "Name of Vertex Group which determines Anchors");
+ RNA_def_property_string_funcs(prop, NULL, NULL, "rna_LaplacianDeformModifier_vgroup_set");
+
+ prop = RNA_def_property(srna, "iterations", PROP_INT, PROP_NONE);
+ RNA_def_property_int_sdna(prop, NULL, "repeat");
+ RNA_def_property_ui_range(prop, 1, 50, 1, -1);
+ RNA_def_property_ui_text(prop, "Repeat", "");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "is_bind", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_funcs(prop, "rna_LaplacianDeformModifier_is_bind_get", NULL);
+ RNA_def_property_ui_text(prop, "Bind", "Whether geometry has been bind to anchors");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
+}
+
void RNA_def_modifier(BlenderRNA *brna)
{
StructRNA *srna;
@@ -3791,6 +3836,7 @@ void RNA_def_modifier(BlenderRNA *brna)
rna_def_modifier_laplaciansmooth(brna);
rna_def_modifier_triangulate(brna);
rna_def_modifier_meshcache(brna);
+ rna_def_modifier_laplaciandeform(brna);
}
#endif