Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-06-30 11:57:17 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-06-30 12:14:46 +0300
commitc07bba1b05faf4d7ba0b129f1e178e3b2c6a8064 (patch)
tree92612eb66fcbd8c3ce8204d39756caf36238870c /source/blender/editors/transform/transform_snap.c
parent5d3ba4fb80dc5def0a11d894bcba19f4fa08fd23 (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.c13
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;