Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform_snap.c
| Context not available. | |||||
| ((t->modifiers & (MOD_SNAP | MOD_SNAP_INVERT)) == MOD_SNAP_INVERT); | ((t->modifiers & (MOD_SNAP | MOD_SNAP_INVERT)) == MOD_SNAP_INVERT); | ||||
| } | } | ||||
| bool doForceIncrementSnap(const TransInfo *t) | |||||
| { | |||||
| return (t->mode == TFM_TRANSLATION && t->settings->snap_force_increment_flag & SCE_SNAP_FORCE_INCREMENT_MOVE) || | |||||
| (t->mode == TFM_ROTATION && t->settings->snap_force_increment_flag & SCE_SNAP_FORCE_INCREMENT_ROTATE) || | |||||
| (t->mode == TFM_RESIZE && t->settings->snap_force_increment_flag & SCE_SNAP_FORCE_INCREMENT_SCALE); | |||||
| } | |||||
| void drawSnapping(const struct bContext *C, TransInfo *t) | void drawSnapping(const struct bContext *C, TransInfo *t) | ||||
| { | { | ||||
| unsigned char col[4], selectedCol[4], activeCol[4]; | unsigned char col[4], selectedCol[4], activeCol[4]; | ||||
| Context not available. | |||||
| void applySnapping(TransInfo *t, float *vec) | void applySnapping(TransInfo *t, float *vec) | ||||
| { | { | ||||
| if (t->tsnap.project && t->tsnap.mode == SCE_SNAP_MODE_FACE) { | /* Each Trans Data already makes the snap to face */ | ||||
| /* Each Trans Data already makes the snap to face */ | if (doForceIncrementSnap(t) || (t->tsnap.project && t->tsnap.mode == SCE_SNAP_MODE_FACE)) | ||||
| { | |||||
| return; | return; | ||||
| } | } | ||||
| Context not available. | |||||
| void snapGridIncrement(TransInfo *t, float *val) | void snapGridIncrement(TransInfo *t, float *val) | ||||
| { | { | ||||
| GearsType action; | GearsType action; | ||||
| /* only do something if using absolute or incremental grid snapping | /* only do something if using absolute or incremental grid snapping | ||||
| * and there is no valid snap point */ | * and there is no valid snap point */ | ||||
| if (!(t->tsnap.mode & (SCE_SNAP_MODE_INCREMENT | SCE_SNAP_MODE_GRID)) || | if ((!(t->tsnap.mode & (SCE_SNAP_MODE_INCREMENT | SCE_SNAP_MODE_GRID)) || | ||||
| validSnap(t)) | validSnap(t)) && !doForceIncrementSnap(t)) | ||||
| { | { | ||||
| return; | return; | ||||
| } | } | ||||
| Context not available. | |||||
| const float *asp = use_aspect ? t->aspect : asp_local; | const float *asp = use_aspect ? t->aspect : asp_local; | ||||
| int i; | int i; | ||||
| BLI_assert(t->tsnap.mode & (SCE_SNAP_MODE_INCREMENT | SCE_SNAP_MODE_GRID)); | BLI_assert(doForceIncrementSnap(t) || t->tsnap.mode & (SCE_SNAP_MODE_INCREMENT | SCE_SNAP_MODE_GRID)); | ||||
| BLI_assert(max_index <= 2); | BLI_assert(max_index <= 2); | ||||
| /* Early bailing out if no need to snap */ | /* Early bailing out if no need to snap */ | ||||
| Context not available. | |||||