[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37591] trunk/blender: fix [#25598] projection surface snap issue
Campbell Barton
ideasman42 at gmail.com
Fri Jun 17 15:02:23 CEST 2011
Revision: 37591
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37591
Author: campbellbarton
Date: 2011-06-17 13:02:23 +0000 (Fri, 17 Jun 2011)
Log Message:
-----------
fix [#25598] projection surface snap issue
Excuse the thrashing, this is from r35438, reverted r35444 under the _wrong_ impression Martin considered unacceptable.
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35438
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35444
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
trunk/blender/source/blender/editors/transform/transform.h
trunk/blender/source/blender/editors/transform/transform_snap.c
trunk/blender/source/blender/makesdna/DNA_scene_types.h
trunk/blender/source/blender/makesrna/intern/rna_scene.c
Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2011-06-17 13:01:29 UTC (rev 37590)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2011-06-17 13:02:23 UTC (rev 37591)
@@ -98,6 +98,8 @@
row.prop(toolsettings, "use_snap_peel_object", text="")
elif toolsettings.snap_element == 'FACE':
row.prop(toolsettings, "use_snap_project", text="")
+ if toolsettings.use_snap_project and obj.mode == 'EDIT':
+ row.prop(toolsettings, "use_snap_project_self", text="")
# OpenGL render
row = layout.row(align=True)
Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h 2011-06-17 13:01:29 UTC (rev 37590)
+++ trunk/blender/source/blender/editors/transform/transform.h 2011-06-17 13:02:23 UTC (rev 37591)
@@ -95,7 +95,8 @@
short modePoint;
short modeSelect;
short align;
- short project;
+ char project;
+ char project_self;
short peel;
short status;
float snapPoint[3]; /* snapping from this point */
Modified: trunk/blender/source/blender/editors/transform/transform_snap.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_snap.c 2011-06-17 13:01:29 UTC (rev 37590)
+++ trunk/blender/source/blender/editors/transform/transform_snap.c 2011-06-17 13:02:23 UTC (rev 37591)
@@ -392,7 +392,7 @@
}
else
{
- t->tsnap.modeSelect = SNAP_ALL;
+ t->tsnap.modeSelect = t->tsnap.project_self ? SNAP_ALL : SNAP_NOT_OBEDIT;
}
}
/* Particles edit mode*/
@@ -457,6 +457,11 @@
{
t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project");
}
+
+ if (RNA_struct_find_property(op->ptr, "use_snap_project_self"))
+ {
+ t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project_self");
+ }
}
}
/* use scene defaults only when transform is modal */
@@ -468,6 +473,7 @@
t->tsnap.align = ((t->settings->snap_flag & SCE_SNAP_ROTATE) == SCE_SNAP_ROTATE);
t->tsnap.project = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT);
+ t->tsnap.project_self = !((t->settings->snap_flag & SCE_SNAP_PROJECT_NO_SELF) == SCE_SNAP_PROJECT_NO_SELF);
t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) == SCE_SNAP_PROJECT);
}
Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h 2011-06-17 13:01:29 UTC (rev 37590)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h 2011-06-17 13:02:23 UTC (rev 37591)
@@ -1071,6 +1071,7 @@
#define SCE_SNAP_ROTATE 2
#define SCE_SNAP_PEEL_OBJECT 4
#define SCE_SNAP_PROJECT 8
+#define SCE_SNAP_PROJECT_NO_SELF 16
/* toolsettings->snap_target */
#define SCE_SNAP_TARGET_CLOSEST 0
#define SCE_SNAP_TARGET_CENTER 1
Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c 2011-06-17 13:01:29 UTC (rev 37590)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c 2011-06-17 13:02:23 UTC (rev 37591)
@@ -1173,6 +1173,12 @@
RNA_def_property_ui_text(prop, "Project Individual Elements", "Project individual elements on the surface of other objects");
RNA_def_property_ui_icon(prop, ICON_RETOPO, 0);
RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */
+
+ prop= RNA_def_property(srna, "use_snap_project_self", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_negative_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT_NO_SELF);
+ RNA_def_property_ui_text(prop, "Project to Self", "Project into its self (editmode)");
+ RNA_def_property_ui_icon(prop, ICON_ORTHO, 0);
+ RNA_def_property_update(prop, NC_SCENE|ND_TOOLSETTINGS, NULL); /* header redraw */
/* Grease Pencil */
prop = RNA_def_property(srna, "use_grease_pencil_sessions", PROP_BOOLEAN, PROP_NONE);
More information about the Bf-blender-cvs
mailing list