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:
authorAndrew Hale <TrumanBlending@gmail.com>2018-08-22 02:45:11 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-08-22 02:45:11 +0300
commite8e89c135f56d05d04ae6db7e876725738539291 (patch)
tree8c633c25a528acb9cb78db01300558033041f3b9 /source/blender/editors/transform
parenta63e5d20583bdd34254bfe289bbed94d8694371c (diff)
Transform: factor out matrix multiply w/ snapping
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_snap.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 54253e36351..8188cb3f51c 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -1095,17 +1095,18 @@ static void TargetSnapMedian(TransInfo *t)
FOREACH_TRANS_DATA_CONTAINER (t, tc) {
TransData *td = tc->data;
int i;
+ float v[3];
+ zero_v3(v);
+
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];
- mul_v3_m4v3(v, tc->mat, td->center);
- add_v3_v3(t->tsnap.snapTarget, v);
- }
- else {
- add_v3_v3(t->tsnap.snapTarget, td->center);
- }
+ add_v3_v3(v, td->center);
}
+
+ if (tc->use_local_mat) {
+ mul_m4_v3(tc->mat, v);
+ }
+
+ add_v3_v3(t->tsnap.snapTarget, v);
i_accum += i;
}