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>2010-11-23 19:10:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2010-11-23 19:10:20 +0300
commit97488b093482d241773ff7d254d1ab1876c5360e (patch)
tree48fbb44fcf328d935d9301fc93f4add23f5ae27a /release
parent8686f46abcaf14a262e03e8811027fe17f3c3d25 (diff)
bugfix [#24871] Unwrapping with Smart Project give a bad result.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/op/uvcalc_smart_project.py20
1 files changed, 8 insertions, 12 deletions
diff --git a/release/scripts/op/uvcalc_smart_project.py b/release/scripts/op/uvcalc_smart_project.py
index f82acf69b54..f3d539e3f24 100644
--- a/release/scripts/op/uvcalc_smart_project.py
+++ b/release/scripts/op/uvcalc_smart_project.py
@@ -776,16 +776,12 @@ def packIslands(islandList):
-def VectoMat(vec):
- a3 = vec.__copy__().normalize()
-
- up = Vector((0.0, 0.0, 1.0))
- if abs(a3.dot(up)) == 1.0:
- up = Vector((0.0, 1.0, 0.0))
-
- a1 = a3.cross(up).normalize()
- a2 = a3.cross(a1)
- return Matrix([a1[0], a1[1], a1[2]], [a2[0], a2[1], a2[2]], [a3[0], a3[1], a3[2]])
+def VectoQuat(vec):
+ vec = vec.copy().normalize()
+ if abs(vec.x) > 0.5:
+ return vec.to_track_quat('Z', 'X')
+ else:
+ return vec.to_track_quat('Z', 'Y')
class thickface(object):
@@ -1048,14 +1044,14 @@ def main(context, island_margin, projection_limit):
continue
# Make a projection matrix from a unit length vector.
- MatProj = VectoMat(projectVecs[i])
+ MatQuat = VectoQuat(projectVecs[i])
# Get the faces UV's from the projected vertex.
for f in faceProjectionGroupList[i]:
f_uv = f.uv
for j, v in enumerate(f.v):
# XXX - note, between mathutils in 2.4 and 2.5 the order changed.
- f_uv[j][:] = (v.co * MatProj)[:2]
+ f_uv[j][:] = (v.co * MatQuat)[:2]
if USER_SHARE_SPACE: