Skip to content

Commit

Permalink
Partial fix for T44469: Do not fail because of division by zero.
Browse files Browse the repository at this point in the history
This only fixes the 'symptoms', root of the issue here is that we get
a weird covariance matrix - Blender's own invert function errors on it,
this script's matrix_invert func does give some result, but in any case
final result is not what one would expect...
  • Loading branch information
Bastien Montagne committed Jun 4, 2015
1 parent eaf1511 commit 4b44a84
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions mesh_looptools.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
bl_info = {
"name": "LoopTools",
"author": "Bart Crouch",
"version": (4, 6, 5),
"version": (4, 6, 6),
"blender": (2, 72, 2),
"location": "View3D > Toolbar and View3D > Specials (W-key)",
"warning": "",
Expand Down Expand Up @@ -260,15 +260,14 @@ def calculate_plane(bm_mod, loop, method="best_fit", object=False):
if not normal:
# warning! this is different from .normalize()
itermax = 500
iter = 0
vec = mathutils.Vector((1.0, 1.0, 1.0))
vec2 = (mat * vec)/(mat * vec).length
while vec != vec2 and iter<itermax:
iter+=1
vec2 = mathutils.Vector((1.0, 1.0, 1.0))
for i in range(itermax):
vec = vec2
vec2 = mat * vec
if vec2.length != 0:
vec2 /= vec2.length
if vec2 == vec:
break
if vec2.length == 0:
vec2 = mathutils.Vector((1.0, 1.0, 1.0))
normal = vec2
Expand Down

0 comments on commit 4b44a84

Please sign in to comment.