Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/transform/transform_snap.c
| Show First 20 Lines • Show All 1,089 Lines • ▼ Show 20 Lines | if ((t->tsnap.status & TARGET_INIT) == 0) { | ||||
| t->tsnap.snapTarget[0] = 0; | t->tsnap.snapTarget[0] = 0; | ||||
| t->tsnap.snapTarget[1] = 0; | t->tsnap.snapTarget[1] = 0; | ||||
| t->tsnap.snapTarget[2] = 0; | t->tsnap.snapTarget[2] = 0; | ||||
| FOREACH_TRANS_DATA_CONTAINER (t, tc) { | FOREACH_TRANS_DATA_CONTAINER (t, tc) { | ||||
| TransData *td = tc->data; | TransData *td = tc->data; | ||||
| int i; | int i; | ||||
| for (i = 0; i < tc->data_len && td->flag & TD_SELECTED; i++, td++) { | |||||
| /* TODO(campbell): perform the global transformation once per TransDataContainer */ | |||||
| if (tc->use_local_mat) { | |||||
| float v[3]; | float v[3]; | ||||
| mul_v3_m4v3(v, tc->mat, td->center); | |||||
| add_v3_v3(t->tsnap.snapTarget, v); | for (i = 0, zero_v3(v); i < tc->data_len && td->flag & TD_SELECTED; i++, td++) { | ||||
| } | add_v3_v3(v, td->center); | ||||
| else { | |||||
| add_v3_v3(t->tsnap.snapTarget, td->center); | |||||
| } | } | ||||
| if (tc->use_local_mat) { | |||||
| mul_m4_v3(tc->mat, v); | |||||
| } | } | ||||
| add_v3_v3(t->tsnap.snapTarget, v); | |||||
| i_accum += i; | i_accum += i; | ||||
| } | } | ||||
| mul_v3_fl(t->tsnap.snapTarget, 1.0 / i_accum); | mul_v3_fl(t->tsnap.snapTarget, 1.0 / i_accum); | ||||
| TargetSnapOffset(t, NULL); | TargetSnapOffset(t, NULL); | ||||
| t->tsnap.status |= TARGET_INIT; | t->tsnap.status |= TARGET_INIT; | ||||
| ▲ Show 20 Lines • Show All 427 Lines • Show Last 20 Lines | |||||