[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34987] trunk/blender: change shrinkwrap modifier cull front/ back options from 2 booleans into an enum since it makes no sense to have front and back enabled at once .

Campbell Barton ideasman42 at gmail.com
Sat Feb 19 10:53:39 CET 2011


Revision: 34987
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34987
Author:   campbellbarton
Date:     2011-02-19 09:53:38 +0000 (Sat, 19 Feb 2011)
Log Message:
-----------
change shrinkwrap modifier cull front/back options from 2 booleans into an enum since it makes no sense to have front and back enabled at once.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_data_modifier.py
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c

Modified: trunk/blender/release/scripts/ui/properties_data_modifier.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_modifier.py	2011-02-19 09:01:28 UTC (rev 34986)
+++ trunk/blender/release/scripts/ui/properties_data_modifier.py	2011-02-19 09:53:38 UTC (rev 34987)
@@ -512,8 +512,7 @@
             col = split.column()
 
             col.label(text="Cull Faces:")
-            col.prop(md, "use_cull_front_faces", text="Front")
-            col.prop(md, "use_cull_back_faces", text="Back")
+            col.prop(md, "cull_face", expand=True)
 
             layout.label(text="Auxiliary Target:")
             layout.prop(md, "auxiliary_target", text="")

Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2011-02-19 09:01:28 UTC (rev 34986)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2011-02-19 09:53:38 UTC (rev 34987)
@@ -477,6 +477,19 @@
 	modifier_object_set(ptr->id.data, &((ShrinkwrapModifierData*)ptr->data)->target, OB_MESH, value);
 }
 
+static int rna_ShrinkwrapModifier_face_cull_get(PointerRNA *ptr)
+{
+	ShrinkwrapModifierData *swm= (ShrinkwrapModifierData*)ptr->data;
+	return swm->shrinkOpts & (MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE|MOD_SHRINKWRAP_CULL_TARGET_BACKFACE);
+}
+
+static void rna_ShrinkwrapModifier_face_cull_set(struct PointerRNA *ptr, int value)
+{
+	ShrinkwrapModifierData *swm= (ShrinkwrapModifierData*)ptr->data;
+	
+	swm->shrinkOpts= (swm->shrinkOpts & ~(MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE|MOD_SHRINKWRAP_CULL_TARGET_BACKFACE)) | value;
+}
+
 static void rna_MeshDeformModifier_object_set(PointerRNA *ptr, PointerRNA value)
 {
 	modifier_object_set(ptr->id.data, &((MeshDeformModifierData*)ptr->data)->object, OB_MESH, value);
@@ -1875,6 +1888,12 @@
 		{MOD_SHRINKWRAP_PROJECT, "PROJECT", 0, "Project", ""},
 		{MOD_SHRINKWRAP_NEAREST_VERTEX, "NEAREST_VERTEX", 0, "Nearest Vertex", ""},
 		{0, NULL, 0, NULL, NULL}};
+	
+	static EnumPropertyItem shrink_face_cull_items[] = {
+		{0, "OFF", 0, "Off", ""},
+		{MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE, "FRONT", 0, "Front", ""},
+		{MOD_SHRINKWRAP_CULL_TARGET_BACKFACE, "BACK", 0, "Back", ""},
+		{0, NULL, 0, NULL, NULL}};
 
 	srna= RNA_def_struct(brna, "ShrinkwrapModifier", "Modifier");
 	RNA_def_struct_ui_text(srna, "Shrinkwrap Modifier", "Shrink wrapping modifier to shrink wrap and object to a target");
@@ -1887,6 +1906,13 @@
 	RNA_def_property_ui_text(prop, "Mode", "");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
+	prop= RNA_def_property(srna, "cull_face", PROP_ENUM, PROP_NONE);
+	RNA_def_property_enum_sdna(prop, NULL, "shrinkOpts");
+	RNA_def_property_enum_items(prop, shrink_face_cull_items);
+	RNA_def_property_enum_funcs(prop, "rna_ShrinkwrapModifier_face_cull_get", "rna_ShrinkwrapModifier_face_cull_set", NULL);
+	RNA_def_property_ui_text(prop, "Face Cull", "Stop vertices from projecting to a the face on the target when facing towards/away");
+	RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
 	prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE);
 	RNA_def_property_ui_text(prop, "Target", "Mesh target to shrink to");
 	RNA_def_property_pointer_funcs(prop, NULL, "rna_ShrinkwrapModifier_target_set", NULL, "rna_Mesh_object_poll");
@@ -1945,16 +1971,6 @@
 	RNA_def_property_ui_text(prop, "Positive", "Allow vertices to move in the positive direction of axis");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
-	prop= RNA_def_property(srna, "use_cull_front_faces", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_CULL_TARGET_FRONTFACE);
-	RNA_def_property_ui_text(prop, "Cull Front Faces", "Stop vertices from projecting to a front face on the target");
-	RNA_def_property_update(prop, 0, "rna_Modifier_update");
-
-	prop= RNA_def_property(srna, "use_cull_back_faces", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_CULL_TARGET_BACKFACE);
-	RNA_def_property_ui_text(prop, "Cull Back Faces", "Stop vertices from projecting to a back face on the target");
-	RNA_def_property_update(prop, 0, "rna_Modifier_update");
-
 	prop= RNA_def_property(srna, "use_keep_above_surface", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "shrinkOpts", MOD_SHRINKWRAP_KEEP_ABOVE_SURFACE);
 	RNA_def_property_ui_text(prop, "Keep Above Surface", "");




More information about the Bf-blender-cvs mailing list