[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