diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-04-25 20:01:54 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-04-25 20:06:57 +0400 |
commit | a34a65314c82eb4fc34cd6b922e40b19cece5ade (patch) | |
tree | f72703a996fc8091e362acef17d4476a1b6171a2 /source/blender/editors/transform/transform_conversions.c | |
parent | a3b0ba287104e37d19d47197cbc3e64ba4498353 (diff) |
Fix for transform local-axis calculation with zero length normals
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 2ac92ce78be..0ad77504c64 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -2059,9 +2059,13 @@ static struct TransIslandData *editmesh_islands_info_calc(BMEditMesh *em, int *r /* pass */ } else { - normalize_v3(no); - axis_dominant_v3_to_m3(trans_islands[i].axismtx, no); - invert_m3(trans_islands[i].axismtx); + if (normalize_v3(no) != 0.0f) { + axis_dominant_v3_to_m3(trans_islands[i].axismtx, no); + invert_m3(trans_islands[i].axismtx); + } + else { + unit_m3(trans_islands[i].axismtx); + } } } |