Revision: 35438
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35438
Author:   campbellbarton
Date:     2011-03-09 22:45:34 +0000 (Wed, 09 Mar 2011)
Log Message:
-----------
add option requested [#25598] projection surface snap issue

for retopo workflow you don't wan't to project the mesh onto its self, added 
option not to.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    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/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py    2011-03-09 22:10:51 UTC 
(rev 35437)
+++ trunk/blender/release/scripts/ui/space_view3d.py    2011-03-09 22:45:34 UTC 
(rev 35438)
@@ -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/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c    
2011-03-09 22:10:51 UTC (rev 35437)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c    
2011-03-09 22:45:34 UTC (rev 35438)
@@ -1025,7 +1025,6 @@
        ParticleData *pa=0, *tpars= 0;
        ParticleSettings *part;
        ParticleSeam *seams= 0;
-       ChildParticle *cpa=0;
        KDTree *tree=0;
        DerivedMesh *dm= NULL;
        float *jit= NULL;

Modified: trunk/blender/source/blender/editors/transform/transform.h
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.h  2011-03-09 
22:10:51 UTC (rev 35437)
+++ trunk/blender/source/blender/editors/transform/transform.h  2011-03-09 
22:45:34 UTC (rev 35438)
@@ -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-03-09 22:10:51 UTC (rev 35437)
+++ trunk/blender/source/blender/editors/transform/transform_snap.c     
2011-03-09 22:45:34 UTC (rev 35438)
@@ -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-03-09 
22:10:51 UTC (rev 35437)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h     2011-03-09 
22:45:34 UTC (rev 35438)
@@ -1073,6 +1073,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-03-09 
22:10:51 UTC (rev 35437)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c    2011-03-09 
22:45:34 UTC (rev 35438)
@@ -1143,6 +1143,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);

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

Reply via email to