[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23985] trunk/blender: etch-a-ton RNA and UI, back in 2.5

Martin Poirier theeth at yahoo.com
Tue Oct 20 02:45:51 CEST 2009


Revision: 23985
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23985
Author:   theeth
Date:     2009-10-20 02:45:51 +0200 (Tue, 20 Oct 2009)

Log Message:
-----------
etch-a-ton RNA and UI, back in 2.5

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/editors/armature/armature_ops.c
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesrna/intern/rna_scene.c

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py	2009-10-19 21:34:38 UTC (rev 23984)
+++ trunk/blender/release/scripts/ui/space_view3d.py	2009-10-20 00:45:51 UTC (rev 23985)
@@ -1379,6 +1379,48 @@
 			col.itemR(orientation, "name")
 			col.itemO("tfm.delete_orientation", text="Delete")
 
+class VIEW3D_PT_etch_a_ton(bpy.types.Panel):
+	__space_type__ = 'VIEW_3D'
+	__region_type__ = 'UI'
+	__label__ = "Skeleton Sketching"
+	__default_closed__ = True
+
+	def poll(self, context):
+		scene = context.space_data
+		ob = context.active_object
+		return scene and ob and ob.type == 'ARMATURE' and ob.mode == 'EDIT' 
+
+	def draw_header(self, context):
+		layout = self.layout
+		toolsettings = context.scene.tool_settings
+
+		layout.itemR(toolsettings, "bone_sketching", text="")
+
+	def draw(self, context):
+		layout = self.layout
+		toolsettings = context.scene.tool_settings
+
+		col = layout.column()
+
+		col.itemR(toolsettings, "etch_quick")
+		col.itemR(toolsettings, "etch_overdraw")
+
+		col.itemR(toolsettings, "etch_convert_mode")
+		
+		if toolsettings.etch_convert_mode == "LENGTH":
+			col.itemR(toolsettings, "etch_length_limit")
+		elif toolsettings.etch_convert_mode == "ADAPTIVE":
+			col.itemR(toolsettings, "etch_adaptive_limit")
+		elif toolsettings.etch_convert_mode == "FIXED":
+			col.itemR(toolsettings, "etch_subdivision_number")
+		elif toolsettings.etch_convert_mode == "RETARGET":
+			col.itemR(toolsettings, "etch_template")
+			col.itemR(toolsettings, "etch_roll_mode")
+			col.itemR(toolsettings, "etch_autoname")
+			col.itemR(toolsettings, "etch_number")
+			col.itemR(toolsettings, "etch_side")
+		
+
 # Operators 
 
 class OBJECT_OT_select_pattern(bpy.types.Operator):
@@ -1497,6 +1539,7 @@
 bpy.types.register(VIEW3D_PT_3dview_curvedisplay)
 bpy.types.register(VIEW3D_PT_background_image)
 bpy.types.register(VIEW3D_PT_transform_orientations)
+bpy.types.register(VIEW3D_PT_etch_a_ton)
 
 bpy.ops.add(OBJECT_OT_select_pattern)
 

Modified: trunk/blender/source/blender/editors/armature/armature_ops.c
===================================================================
--- trunk/blender/source/blender/editors/armature/armature_ops.c	2009-10-19 21:34:38 UTC (rev 23984)
+++ trunk/blender/source/blender/editors/armature/armature_ops.c	2009-10-20 00:45:51 UTC (rev 23985)
@@ -214,6 +214,22 @@
 	keymap= WM_keymap_find(keyconf, "Armature", 0, 0);
 	keymap->poll= ED_operator_editarmature;
 	
+	/* Armature -> Etch-A-Ton ------------------------ */
+	WM_keymap_add_item(keymap, "SKETCH_OT_delete", XKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "SKETCH_OT_delete", DELKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "SKETCH_OT_finish_stroke", SELECTMOUSE, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "SKETCH_OT_cancel_stroke", ESCKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "SKETCH_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
+
+	/* sketch poll checks mode */	
+	WM_keymap_add_item(keymap, "SKETCH_OT_gesture", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
+	WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, 0, 0);
+	kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
+	RNA_boolean_set(kmi->ptr, "snap", 1);
+	WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, 0, 0);
+	kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, KM_CTRL, 0);
+	RNA_boolean_set(kmi->ptr, "snap", 1);
+
 	/* only set in editmode armature, by space_view3d listener */
 //	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
 	WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
@@ -278,23 +294,7 @@
 		/* 	2) set roll */
 	kmi= WM_keymap_add_item(keymap, "TFM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0);
 		RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ROLL);
-	
-	/* Armature -> Etch-A-Ton ------------------------ */
-	WM_keymap_add_item(keymap, "SKETCH_OT_delete", XKEY, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "SKETCH_OT_delete", DELKEY, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "SKETCH_OT_finish_stroke", SELECTMOUSE, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "SKETCH_OT_cancel_stroke", ESCKEY, KM_PRESS, 0, 0);
-	WM_keymap_add_item(keymap, "SKETCH_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
 
-	/* sketch poll checks mode */	
-	WM_keymap_add_item(keymap, "SKETCH_OT_gesture", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
-	WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, 0, 0);
-	kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_stroke", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
-	RNA_boolean_set(kmi->ptr, "snap", 1);
-	WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, 0, 0);
-	kmi = WM_keymap_add_item(keymap, "SKETCH_OT_draw_preview", MOUSEMOVE, KM_ANY, KM_CTRL, 0);
-	RNA_boolean_set(kmi->ptr, "snap", 1);
-
 	/* Pose ------------------------ */
 	/* only set in posemode, by space_view3d listener */
 	keymap= WM_keymap_find(keyconf, "Pose", 0, 0);

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2009-10-19 21:34:38 UTC (rev 23984)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2009-10-20 00:45:51 UTC (rev 23985)
@@ -1169,6 +1169,7 @@
 #define	SK_RETARGET_AUTONAME			1
 
 /* toolsettings->skgen_retarget_roll */
+#define	SK_RETARGET_ROLL_NONE			0
 #define	SK_RETARGET_ROLL_VIEW			1
 #define	SK_RETARGET_ROLL_JOINT			2
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2009-10-19 21:34:38 UTC (rev 23984)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2009-10-20 00:45:51 UTC (rev 23985)
@@ -95,6 +95,15 @@
 	return rna_pointer_inherit_refine(&iter->parent, &RNA_Object, ((Base*)internal->link)->object);
 }
 
+static void rna_Scene_skgen_etch_template_set(PointerRNA *ptr, PointerRNA value)
+{
+	ToolSettings *ts = (ToolSettings*)ptr->data;
+	if(value.data && ((Object*)value.data)->type == OB_ARMATURE)
+		ts->skgen_template = value.data;
+	else
+		ts->skgen_template = NULL;
+}
+
 static PointerRNA rna_Scene_active_object_get(PointerRNA *ptr)
 {
 	Scene *scene= (Scene*)ptr->data;
@@ -523,6 +532,19 @@
 		{AUTOKEY_MODE_EDITKEYS, "REPLACE_KEYS", 0, "Replace", ""},
 		{0, NULL, 0, NULL, NULL}};
 
+	static EnumPropertyItem retarget_roll_items[] = {
+		{SK_RETARGET_ROLL_NONE, "NONE", 0, "None", "Don't adjust roll."},
+		{SK_RETARGET_ROLL_VIEW, "VIEW", 0, "View", "Roll bones to face the view."},
+		{SK_RETARGET_ROLL_JOINT, "JOINT", 0, "Joint", "Roll bone to original joint plane offset."},
+		{0, NULL, 0, NULL, NULL}};
+	
+	static EnumPropertyItem sketch_convert_items[] = {
+		{SK_CONVERT_CUT_FIXED, "FIXED", 0, "Fixed", "Subdivide stroke in fixed number of bones."},
+		{SK_CONVERT_CUT_LENGTH, "LENGTH", 0, "Length", "Subdivide stroke in bones of specific length."},
+		{SK_CONVERT_CUT_ADAPTATIVE, "ADAPTIVE", 0, "Adaptive", "Subdivide stroke adaptively, with more subdivision in curvier parts."},
+		{SK_CONVERT_RETARGET, "RETARGET", 0, "Retarget", "Retarget template bone chain to stroke."},
+		{0, NULL, 0, NULL, NULL}};
+
 	srna= RNA_def_struct(brna, "ToolSettings", NULL);
 	RNA_def_struct_ui_text(srna, "Tool Settings", "");
 	
@@ -638,6 +660,70 @@
 	prop= RNA_def_property(srna, "vertex_group_weight", PROP_FLOAT, PROP_FACTOR);
 	RNA_def_property_float_sdna(prop, NULL, "vgroup_weight");
 	RNA_def_property_ui_text(prop, "Vertex Group Weight", "Weight to assign in vertex groups.");
+
+	/* etch-a-ton */
+	prop= RNA_def_property(srna, "bone_sketching", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "bone_sketching", BONE_SKETCHING);
+	RNA_def_property_ui_text(prop, "Use Bone Sketching", "DOC BROKEN");
+//	RNA_def_property_ui_icon(prop, ICON_EDIT, 0);
+
+	prop= RNA_def_property(srna, "etch_quick", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "bone_sketching", BONE_SKETCHING_QUICK);
+	RNA_def_property_ui_text(prop, "Quick Sketching", "DOC BROKEN");
+
+	prop= RNA_def_property(srna, "etch_overdraw", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "bone_sketching", BONE_SKETCHING_ADJUST);
+	RNA_def_property_ui_text(prop, "Overdraw Sketching", "DOC BROKEN");
+	
+	prop= RNA_def_property(srna, "etch_autoname", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "skgen_retarget_options", SK_RETARGET_AUTONAME);
+	RNA_def_property_ui_text(prop, "Autoname", "DOC BROKEN");
+
+	prop= RNA_def_property(srna, "etch_number", PROP_STRING, PROP_NONE);
+	RNA_def_property_string_sdna(prop, NULL, "skgen_num_string");
+	RNA_def_property_ui_text(prop, "Number", "DOC BROKEN");
+
+	prop= RNA_def_property(srna, "etch_side", PROP_STRING, PROP_NONE);
+	RNA_def_property_string_sdna(prop, NULL, "skgen_num_string");
+	RNA_def_property_ui_text(prop, "Side", "DOC BROKEN");
+
+	prop= RNA_def_property(srna, "etch_template", PROP_POINTER, PROP_NONE);
+	RNA_def_property_pointer_sdna(prop, NULL, "skgen_template");
+	RNA_def_property_flag(prop, PROP_EDITABLE);
+	RNA_def_property_struct_type(prop, "Object");
+	RNA_def_property_pointer_funcs(prop, NULL, "rna_Scene_skgen_etch_template_set", NULL);
+	RNA_def_property_ui_text(prop, "Template", "Template armature that will be retargeted to the stroke.");
+
+	prop= RNA_def_property(srna, "etch_subdivision_number", PROP_INT, PROP_NONE);
+	RNA_def_property_int_sdna(prop, NULL, "skgen_subdivision_number");
+	RNA_def_property_range(prop, 1, 10000);
+	RNA_def_property_ui_text(prop, "Subdivisions", "Number of bones in the subdivided stroke.");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+	prop= RNA_def_property(srna, "etch_adaptive_limit", PROP_FLOAT, PROP_FACTOR);
+	RNA_def_property_float_sdna(prop, NULL, "skgen_correlation_limit");
+	RNA_def_property_range(prop, 0.00001, 1.0);
+	RNA_def_property_ui_range(prop, 0.01, 1.0, 0.01, 2);
+	RNA_def_property_ui_text(prop, "Limit", "Number of bones in the subdivided stroke.");
+	RNA_def_property_update(prop, NC_SPACE|ND_SPACE_VIEW3D, NULL);
+
+	prop= RNA_def_property(srna, "etch_length_limit", PROP_FLOAT, PROP_DISTANCE);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list