diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-06-30 11:57:17 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-06-30 12:14:46 +0300 |
commit | c07bba1b05faf4d7ba0b129f1e178e3b2c6a8064 (patch) | |
tree | 92612eb66fcbd8c3ce8204d39756caf36238870c /source/blender/editors/transform/transform_snap.c | |
parent | 5d3ba4fb80dc5def0a11d894bcba19f4fa08fd23 (diff) |
Transform: add back absolute snapping option
This ensures that vertices are grid-aligned while transforming,
instead of just snapping the input values for translate.
Diffstat (limited to 'source/blender/editors/transform/transform_snap.c')
-rw-r--r-- | source/blender/editors/transform/transform_snap.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 9555596a380..4ccc05b6614 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -388,7 +388,7 @@ void applyGridAbsolute(TransInfo *t) bool use_obmat = false; int i; - if (!(activeSnap(t) && (t->tsnap.mode == SCE_SNAP_MODE_GRID))) + if (!(activeSnap(t) && (ELEM(t->tsnap.mode, SCE_SNAP_MODE_INCREMENT, SCE_SNAP_MODE_GRID)))) return; grid_action = BIG_GEARS; @@ -396,9 +396,9 @@ void applyGridAbsolute(TransInfo *t) grid_action = SMALL_GEARS; switch (grid_action) { - case NO_GEARS: grid_size = t->snap[0]; break; - case BIG_GEARS: grid_size = t->snap[1]; break; - case SMALL_GEARS: grid_size = t->snap[2]; break; + case NO_GEARS: grid_size = t->snap_spatial[0]; break; + case BIG_GEARS: grid_size = t->snap_spatial[1]; break; + case SMALL_GEARS: grid_size = t->snap_spatial[2]; break; } /* early exit on unusable grid size */ if (grid_size == 0.0f) @@ -637,6 +637,11 @@ void initSnapping(TransInfo *t, wmOperator *op) t->tsnap.snap_self = !((t->settings->snap_flag & SCE_SNAP_NO_SELF) != 0); t->tsnap.peel = ((t->settings->snap_flag & SCE_SNAP_PROJECT) != 0); } + + /* for now only 3d view (others can be added if we want) */ + if (t->spacetype == SPACE_VIEW3D) { + t->tsnap.snap_spatial_grid = ((t->settings->snap_flag & SCE_SNAP_ABS_GRID) != 0); + } } t->tsnap.target = snap_target; |