Commit: 1abf7dd83509b61d16589c5b12b3a2b941bab79f
Author: Campbell Barton
Date:   Tue Jun 21 16:17:05 2016 +1000
Branches: master
https://developer.blender.org/rB1abf7dd83509b61d16589c5b12b3a2b941bab79f

Fix T48697: Brush curve-stroke snaps strangely

Support Snapping screen-space 2d curves, (was applying world-space coords in 
screen-space).
Also show snap settings in header.

===================================================================

M       release/scripts/startup/bl_ui/space_view3d.py
M       source/blender/editors/transform/transform_snap.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_view3d.py 
b/release/scripts/startup/bl_ui/space_view3d.py
index b88b831..62d71b2 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -81,7 +81,20 @@ class VIEW3D_HT_header(Header):
                     row.prop(toolsettings, "proportional_edit_falloff", 
icon_only=True)
 
         # Snap
-        if not obj or mode not in {'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 
'TEXTURE_PAINT'}:
+        show_snap = False
+        if obj is None:
+            show_snap = True
+        else:
+            if mode not in {'SCULPT', 'VERTEX_PAINT', 'WEIGHT_PAINT', 
'TEXTURE_PAINT'}:
+                show_snap = True
+            else:
+                paint_settings = UnifiedPaintPanel.paint_settings(context)
+                if paint_settings:
+                    brush = paint_settings.brush
+                    if brush and brush.stroke_method == 'CURVE':
+                        show_snap = True
+
+        if show_snap:
             snap_element = toolsettings.snap_element
             row = layout.row(align=True)
             row.prop(toolsettings, "use_snap", text="")
diff --git a/source/blender/editors/transform/transform_snap.c 
b/source/blender/editors/transform/transform_snap.c
index d9b12bb..0bb6431 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -842,6 +842,14 @@ static void ApplySnapTranslation(TransInfo *t, float 
vec[3])
                        vec[1] = point[1] - t->tsnap.snapTarget[1];
        }
        else {
+               if (t->spacetype == SPACE_VIEW3D) {
+                       if (t->options & CTX_PAINT_CURVE) {
+                               if (ED_view3d_project_float_global(t->ar, 
point, point, V3D_PROJ_TEST_NOP) != V3D_PROJ_RET_OK) {
+                                       zero_v3(point);  /* no good answer 
here... */
+                               }
+                       }
+               }
+
                sub_v3_v3v3(vec, point, t->tsnap.snapTarget);
        }
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to