Fix T39979

Checking for zero-length vector wasn't sufficiently robust.
Could result in NaNs being assigned to vertex coordinates.
This commit is contained in:
Bart Crouch 2014-08-06 15:54:23 +02:00
parent 80c7986485
commit 6b57e3ed43
Notes: blender-bot 2023-02-14 20:07:37 +01:00
Referenced by issue #39979, Crash on recalculate normals / unexpected looptools result
1 changed files with 3 additions and 4 deletions

View File

@ -19,8 +19,8 @@
bl_info = {
"name": "LoopTools",
"author": "Bart Crouch",
"version": (4, 6, 1),
"blender": (2, 69, 3),
"version": (4, 6, 2),
"blender": (2, 71, 3),
"location": "View3D > Toolbar and View3D > Specials (W-key)",
"warning": "",
"description": "Mesh modelling toolkit. Several tools to aid modelling",
@ -1686,7 +1686,7 @@ def circle_3d_to_2d(bm_mod, loop, com, normal):
# calculate two vectors (p and q) along the plane
m = mathutils.Vector((normal[0] + 1.0, normal[1], normal[2]))
p = m - (m.dot(normal) * normal)
if p.dot(p) == 0.0:
if p.dot(p) < 1e-6:
m = mathutils.Vector((normal[0], normal[1] + 1.0, normal[2]))
p = m - (m.dot(normal) * normal)
q = p.cross(normal)
@ -4093,7 +4093,6 @@ class Space(bpy.types.Operator):
# saving cache for faster execution next time
if not cached:
print(loops)
cache_write("Space", object, bm, self.input, False, False, loops,
derived, mapping)