Sculpt Branch:

Subdivision set with Ctrl+1-5 now works for multires as well.
This commit is contained in:
2009-12-07 19:56:59 +00:00
parent 82ddfbf99f
commit a321e2b139
3 changed files with 20 additions and 16 deletions

View File

@@ -75,16 +75,16 @@ class SelectPattern(bpy.types.Operator):
row.prop(props, "extend") row.prop(props, "extend")
class SubsurfSet(bpy.types.Operator): class SubdivisionSet(bpy.types.Operator):
'''Sets a Subdivision Surface Level (1-5)''' '''Sets a Subdivision Surface Level (1-5)'''
bl_idname = "object.subsurf_set" bl_idname = "object.subdivision_set"
bl_label = "Subsurf Set" bl_label = "Subdivision Set"
bl_register = True bl_register = True
bl_undo = True bl_undo = True
level = IntProperty(name="Level", level = IntProperty(name="Level",
default=1, min=0, max=6) default=1, min=0, max=100, soft_min=0, soft_max=6)
def poll(self, context): def poll(self, context):
ob = context.active_object ob = context.active_object
@@ -94,7 +94,11 @@ class SubsurfSet(bpy.types.Operator):
level = self.properties.level level = self.properties.level
ob = context.active_object ob = context.active_object
for mod in ob.modifiers: for mod in ob.modifiers:
if mod.type == 'SUBSURF': if mod.type == 'MULTIRES' and ob.mode == 'SCULPT':
if mod.sculpt_levels != level:
mod.sculpt_levels = level
return ('FINISHED',)
elif mod.type == 'SUBSURF' or mod.type == 'MULTIRES':
if mod.levels != level: if mod.levels != level:
mod.levels = level mod.levels = level
return ('FINISHED',) return ('FINISHED',)
@@ -120,5 +124,6 @@ class Retopo(bpy.types.Operator):
bpy.ops.add(SelectPattern) bpy.ops.add(SelectPattern)
bpy.ops.add(SubsurfSet) bpy.ops.add(SubdivisionSet)
bpy.ops.add(Retopo) bpy.ops.add(Retopo)

View File

@@ -227,6 +227,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
{ {
wmKeyMap *keymap; wmKeyMap *keymap;
wmKeyMapItem *kmi; wmKeyMapItem *kmi;
int i;
/* Objects, Regardless of Mode -------------------------------------------------- */ /* Objects, Regardless of Mode -------------------------------------------------- */
keymap= WM_keymap_find(keyconf, "Object Non-modal", 0, 0); keymap= WM_keymap_find(keyconf, "Object Non-modal", 0, 0);
@@ -314,16 +315,10 @@ void ED_keymap_object(wmKeyConfig *keyconf)
WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0); WM_keymap_verify_item(keymap, "GROUP_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0); WM_keymap_verify_item(keymap, "GROUP_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", ONEKEY, KM_PRESS, KM_CTRL, 0); for(i=1; i<=5; i++) {
RNA_int_set(kmi->ptr, "level", 1); kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0);
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", TWOKEY, KM_PRESS, KM_CTRL, 0); RNA_int_set(kmi->ptr, "level", i);
RNA_int_set(kmi->ptr, "level", 2); }
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", THREEKEY, KM_PRESS, KM_CTRL, 0);
RNA_int_set(kmi->ptr, "level", 3);
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", FOURKEY, KM_PRESS, KM_CTRL, 0);
RNA_int_set(kmi->ptr, "level", 4);
kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subsurf_set", FIVEKEY, KM_PRESS, KM_CTRL, 0);
RNA_int_set(kmi->ptr, "level", 5);
/* Lattice -------------------------------------------------------------------- */ /* Lattice -------------------------------------------------------------------- */
keymap= WM_keymap_find(keyconf, "Lattice", 0, 0); keymap= WM_keymap_find(keyconf, "Lattice", 0, 0);

View File

@@ -179,6 +179,7 @@ static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path)
void ED_keymap_paint(wmKeyConfig *keyconf) void ED_keymap_paint(wmKeyConfig *keyconf)
{ {
wmKeyMap *keymap; wmKeyMap *keymap;
int i;
/* Sculpt mode */ /* Sculpt mode */
keymap= WM_keymap_find(keyconf, "Sculpt", 0, 0); keymap= WM_keymap_find(keyconf, "Sculpt", 0, 0);
@@ -193,6 +194,9 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index"); ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index");
for(i=1; i<=5; i++)
RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i);
/* Vertex Paint mode */ /* Vertex Paint mode */
keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0); keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0);
keymap->poll= vertex_paint_poll; keymap->poll= vertex_paint_poll;