Revision: 38841
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38841
Author:   psy-fi
Date:     2011-07-29 23:06:40 +0000 (Fri, 29 Jul 2011)
Log Message:
-----------
smooth brush
========================
-bypass keymap of uv's when smooth brush is on
-hide cursor when smooth brush is on
-dummy operator for brush, I still can't get it to work
-fix circular dependency for brushsettings.hpp(depended on itself)

Modified Paths:
--------------
    branches/soc-2011-onion/extern/brushlib/CMakeLists.txt
    branches/soc-2011-onion/source/blender/editors/include/ED_image.h
    branches/soc-2011-onion/source/blender/editors/include/ED_screen.h
    branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
    branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c
    branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c
    branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c
    branches/soc-2011-onion/source/blender/makesrna/intern/rna_space.c
    branches/soc-2011-onion/source/blenderplayer/bad_level_call_stubs/stubs.c

Modified: branches/soc-2011-onion/extern/brushlib/CMakeLists.txt
===================================================================
--- branches/soc-2011-onion/extern/brushlib/CMakeLists.txt      2011-07-29 
22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/extern/brushlib/CMakeLists.txt      2011-07-29 
23:06:40 UTC (rev 38841)
@@ -27,7 +27,7 @@
 ADD_CUSTOM_COMMAND(
        OUTPUT brushsettings.hpp
        COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/generate.py 
${CMAKE_CURRENT_SOURCE_DIR}
-       DEPENDS brushsettings.hpp ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
+#      DEPENDS brushsettings.hpp ${CMAKE_CURRENT_SOURCE_DIR}/generate.py
        )
 
 set(INC

Modified: branches/soc-2011-onion/source/blender/editors/include/ED_image.h
===================================================================
--- branches/soc-2011-onion/source/blender/editors/include/ED_image.h   
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/include/ED_image.h   
2011-07-29 23:06:40 UTC (rev 38841)
@@ -55,6 +55,7 @@
 void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float 
*aspy);
 
 void ED_space_image_paint_update(struct wmWindowManager *wm, struct 
ToolSettings *settings);
+void ED_space_image_uv_smooth_update(struct wmWindowManager *wm, struct 
ToolSettings *settings);
 
 void ED_image_size(struct Image *ima, int *width, int *height);
 void ED_image_aspect(struct Image *ima, float *aspx, float *aspy);

Modified: branches/soc-2011-onion/source/blender/editors/include/ED_screen.h
===================================================================
--- branches/soc-2011-onion/source/blender/editors/include/ED_screen.h  
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/include/ED_screen.h  
2011-07-29 23:06:40 UTC (rev 38841)
@@ -168,6 +168,7 @@
 int            ED_operator_editlattice(struct bContext *C);
 int            ED_operator_editmball(struct bContext *C);
 int            ED_operator_uvedit(struct bContext *C);
+int            ED_operator_uvedit_no_smooth(struct bContext *C);
 int            ED_operator_uvmap(struct bContext *C);
 int            ED_operator_uvmap_mesh(struct bContext *C);
 int            ED_operator_uv_seam_tag_active(struct bContext *C);

Modified: branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c  
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/screen/screen_ops.c  
2011-07-29 23:06:40 UTC (rev 38841)
@@ -364,6 +364,14 @@
        return ED_space_image_show_uvedit(sima, obedit);
 }
 
+int    ED_operator_uvedit_no_smooth(struct bContext *C)
+{
+       SpaceImage *sima= CTX_wm_space_image(C);
+       Object *obedit= CTX_data_edit_object(C);
+       return ED_space_image_show_uvedit(sima, obedit) && !(sima->flag & 
SI_SMOOTH_BRUSH);
+}
+
+
 int ED_operator_uvmap(bContext *C)
 {
        Object *obedit= CTX_data_edit_object(C);

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c   
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_image.c   
2011-07-29 23:06:40 UTC (rev 38841)
@@ -4521,7 +4521,7 @@
                if(sima) {
                        ARegion *ar= CTX_wm_region(C);
 
-                       if(((sima->flag & SI_DRAWTOOL) || (sima->flag & 
SI_SMOOTH_BRUSH)) && ar->regiontype==RGN_TYPE_WINDOW)
+                       if((sima->flag & SI_DRAWTOOL) && 
ar->regiontype==RGN_TYPE_WINDOW)
                                return 1;
                }
        }
@@ -4529,6 +4529,23 @@
        return 0;
 }
 
+static int uv_smooth_brush_poll(const bContext *C)
+{
+//     Object *obact = CTX_data_active_object(C);
+       SpaceImage *sima= CTX_wm_space_image(C);
+
+       if(!image_paint_brush(C))
+               return 0;
+
+       if(sima) {
+               ARegion *ar= CTX_wm_region(C);
+               if((sima->flag & SI_SMOOTH_BRUSH) && 
ar->regiontype==RGN_TYPE_WINDOW)
+                       return 1;
+       }
+
+       return 0;
+}
+
 static int image_paint_3d_poll(bContext *C)
 {
        if(CTX_wm_region_view3d(C))
@@ -5062,6 +5079,17 @@
                NULL);
 }
 
+
+void ED_space_image_uv_smooth_update(wmWindowManager *wm, ToolSettings 
*settings)
+{
+       paint_mode_init(
+               wm,
+               &(settings->imapaint.paint),
+               OB_MODE_TEXTURE_PAINT,
+               uv_smooth_brush_poll,
+               brush_drawcursor,
+               NULL);
+}
 /************************ grab clone operator ************************/
 
 typedef struct GrabClone {
@@ -5388,6 +5416,11 @@
        return (texture_paint_poll(C) || image_paint_poll(C));
 }
 
+int uv_smooth_poll(bContext *C)
+{
+       return uv_smooth_brush_poll(C);
+}
+
 int facemask_paint_poll(bContext *C)
 {
        return paint_facesel_test(CTX_data_active_object(C));

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h  
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_intern.h  
2011-07-29 23:06:40 UTC (rev 38841)
@@ -254,6 +254,9 @@
 void PAINT_OT_weight_layers_images_from_view(struct wmOperatorType *ot);
 void PAINT_OT_weight_layers_to_uv_images(struct wmOperatorType *ot);
 
+/* uv smoothing */
+int uv_smooth_poll(struct bContext *C);
+
 /* paint_utils.c */
 void projectf(struct bglMats *mats, const float v[3], float p[2]);
 float paint_calc_object_space_radius(const struct ViewContext *vc, const float 
center[3], float pixel_radius);

Modified: 
branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c     
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/sculpt_paint/paint_ops.c     
2011-07-29 23:06:40 UTC (rev 38841)
@@ -359,7 +359,29 @@
        ot->prop= RNA_def_enum(ot->srna, "tool", brush_image_tool_items, 0, 
"Tool", "");
 }
 
+static int uv_smooth_stroke_exec(bContext *C, wmOperator *op)
+{
+       printf("little ducks\n");
+       return OPERATOR_FINISHED;
+}
 
+static void UV_OT_uv_smooth_stroke(wmOperatorType *ot)
+{
+       /* identifiers */
+       ot->name= "Smooth UVs";
+       ot->description= "Smooth UVs using a brush";
+       ot->idname= "UV_OT_uv_smooth_stroke";
+
+       /* api callbacks */
+       ot->exec= uv_smooth_stroke_exec;
+       ot->poll= uv_smooth_poll;
+
+       /* flags */
+       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+       /* props */
+}
+
 /**************************** registration **********************************/
 
 void ED_operatortypes_paint(void)
@@ -395,6 +417,9 @@
        WM_operatortype_append(PAINT_OT_weight_layers_images_from_view);
        WM_operatortype_append(PAINT_OT_weight_layers_to_uv_images);
 
+       /* uv */
+       WM_operatortype_append(UV_OT_uv_smooth_stroke);
+
        /* vertex */
        WM_operatortype_append(PAINT_OT_vertex_paint_toggle);
        WM_operatortype_append(PAINT_OT_vpaint_stroke);
@@ -681,6 +706,11 @@
        WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked", LKEY, 
KM_PRESS, KM_CTRL, 0);
        WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, 
KM_PRESS, 0, 0);
 
+       keymap= WM_keymap_find(keyconf, "UV Smooth", 0, 0);
+       keymap->poll= uv_smooth_poll;
+
+       WM_keymap_add_item(keymap, "UV_OT_uv_smooth_stroke", LEFTMOUSE, 
KM_PRESS, 0, 0);
+
        /* paint stroke */
        {
                wmKeyMap* keymap= paint_stroke_modal_keymap(keyconf);

Modified: branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c 
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_draw.c 
2011-07-29 23:06:40 UTC (rev 38841)
@@ -935,7 +935,7 @@
                        draw_uvs_texpaint(sima, scene, paint_ob, ima);
                }
 
-               if(show_uvedit)
+               if(show_uvedit && !(sima->flag & SI_SMOOTH_BRUSH))
                        drawcursor_sima(sima, ar);
        }
 }

Modified: branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c
===================================================================
--- branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c  
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/editors/uvedit/uvedit_ops.c  
2011-07-29 23:06:40 UTC (rev 38841)
@@ -4486,7 +4486,7 @@
        wmKeyMapItem *kmi;
        
        keymap= WM_keymap_find(keyconf, "UV Editor", 0, 0);
-       keymap->poll= ED_operator_uvedit;
+       keymap->poll= ED_operator_uvedit_no_smooth;
 
        /* Mark edge seam */
        WM_keymap_add_item(keymap, "UV_OT_mark_seam_uv", YKEY, KM_PRESS, 0, 0);

Modified: branches/soc-2011-onion/source/blender/makesrna/intern/rna_space.c
===================================================================
--- branches/soc-2011-onion/source/blender/makesrna/intern/rna_space.c  
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blender/makesrna/intern/rna_space.c  
2011-07-29 23:06:40 UTC (rev 38841)
@@ -442,6 +442,11 @@
        ED_space_image_paint_update(bmain->wm.first, scene->toolsettings);
 }
 
+static void rna_SpaceImageEditor_uv_smooth_update(Main *bmain, Scene *scene, 
PointerRNA *UNUSED(ptr))
+{
+       ED_space_image_uv_smooth_update(bmain->wm.first, scene->toolsettings);
+}
+
 static void rna_update_island_manager(Main *UNUSED(bmain), Scene 
*UNUSED(scene), PointerRNA *ptr)
 {
        SpaceImage *sima= (SpaceImage*)(ptr->data);
@@ -1643,7 +1648,7 @@
        RNA_def_property_boolean_sdna(prop, NULL, "flag", SI_SMOOTH_BRUSH);
        RNA_def_property_ui_text(prop, "Smooth Brush", "Enable brush for uv 
smoothing");
        RNA_def_property_ui_icon(prop, ICON_TPAINT_HLT, 0);
-       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, 
"rna_SpaceImageEditor_paint_update");
+       RNA_def_property_update(prop, NC_SPACE|ND_SPACE_IMAGE, 
"rna_SpaceImageEditor_uv_smooth_update");
 
        /* grease pencil */
        prop= RNA_def_property(srna, "grease_pencil", PROP_POINTER, PROP_NONE);

Modified: 
branches/soc-2011-onion/source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
--- branches/soc-2011-onion/source/blenderplayer/bad_level_call_stubs/stubs.c   
2011-07-29 22:54:53 UTC (rev 38840)
+++ branches/soc-2011-onion/source/blenderplayer/bad_level_call_stubs/stubs.c   
2011-07-29 23:06:40 UTC (rev 38841)
@@ -190,6 +190,7 @@
 int ED_space_image_show_render(struct SpaceImage *sima){return 0;}
 int ED_space_image_show_paint(struct SpaceImage *sima){return 0;}
 void ED_space_image_paint_update(struct wmWindowManager *wm, struct 
ToolSettings *settings){}

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to