[Bf-blender-cvs] [1abf7dd] master: Fix T48697: Brush curve-stroke snaps strangely

Campbell Barton noreply at git.blender.org
Tue Jun 21 08:14:55 CEST 2016


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);
 	}
 }




More information about the Bf-blender-cvs mailing list