diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-06-25 04:49:53 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2011-06-25 04:49:53 +0400 |
commit | d65ebf8c847c18f8be568eab4d5c65e7b630a40f (patch) | |
tree | 2795070d936c6ec7012a0339ea74d1d4b317c3d4 /source/blender/editors/transform/transform_snap.c | |
parent | 17ee056fc6d15abc4b69a24ceac0e7f3d4dffa47 (diff) | |
parent | a03707d408b9e37cd11124c93b1516eae9522139 (diff) |
Merged changes in the trunk up to revision 37799.
Note for VS2008 plus CMake users:
I had to remove OpenEXR debug libs from the "blender" project properties >
Linker > Additional Dependencies. Otherwise I got a number of linker errors
concerning duplicated symbols between libcmt.lib and libcmtd.lib.
Diffstat (limited to 'source/blender/editors/transform/transform_snap.c')
-rw-r--r-- | source/blender/editors/transform/transform_snap.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index e3e5e012920..d9d9b0f9102 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -385,14 +385,14 @@ static void initSnappingMode(TransInfo *t) if (t->tsnap.applySnap != NULL && // A snapping function actually exist (obedit != NULL && ELEM4(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE, OB_LATTICE)) ) // Temporary limited to edit mode meshes, armature, curves { - /* editmode meshes now supported */ - if ((obedit->type != OB_MESH) && ((t->flag & T_PROP_EDIT) || t->tsnap.project)) /* also exclude edit for project, for now */ + /* Exclude editmesh if using proportional edit */ + if ((obedit->type == OB_MESH) && (t->flag & T_PROP_EDIT)) { t->tsnap.modeSelect = SNAP_NOT_OBEDIT; } 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 @@ void initSnapping(TransInfo *t, wmOperator *op) { 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 @@ void initSnapping(TransInfo *t, wmOperator *op) 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); } |