[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2562] trunk/py/scripts/addons/ mesh_looptools.py: Fix for divide-by-zero errors.

Bart Crouch bartius.crouch at gmail.com
Tue Nov 1 19:52:14 CET 2011


Revision: 2562
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2562
Author:   crouch
Date:     2011-11-01 18:52:14 +0000 (Tue, 01 Nov 2011)
Log Message:
-----------
Fix for divide-by-zero errors.

Modified Paths:
--------------
    trunk/py/scripts/addons/mesh_looptools.py

Modified: trunk/py/scripts/addons/mesh_looptools.py
===================================================================
--- trunk/py/scripts/addons/mesh_looptools.py	2011-11-01 17:01:28 UTC (rev 2561)
+++ trunk/py/scripts/addons/mesh_looptools.py	2011-11-01 18:52:14 UTC (rev 2562)
@@ -19,9 +19,9 @@
 bl_info = {
     'name': "LoopTools",
     'author': "Bart Crouch",
-    'version': (3, 2, 0),
-    'blender': (2, 5, 7),
-    'api': 35979,
+    'version': (3, 2, 1),
+    'blender': (2, 6, 0),
+    'api': 41270,
     'location': "View3D > Toolbar and View3D > Specials (W-key)",
     'warning': "",
     'description': "Mesh modelling toolkit. Several tools to aid modelling",
@@ -249,9 +249,13 @@
             vec = mathutils.Vector((1.0, 1.0, 1.0))
             vec2 = (mat * vec)/(mat * vec).length
             while vec != vec2 and iter<itermax:
-                iter += 1
+                iter+=1
                 vec = vec2
-                vec2 = (mat * vec)/(mat * vec).length
+                vec2 = mat * vec
+                if vec2.length != 0:
+                    vec2 /= vec2.length
+            if vec2.length == 0:
+                vec2 = mathutils.Vector((1.0, 1.0, 1.0))
             normal = vec2
     
     elif method == 'normal':
@@ -936,7 +940,11 @@
             while vec != vec2 and iter<itermax:
                 iter+=1
                 vec = vec2
-                vec2 = (mat * vec)/(mat * vec).length
+                vec2 = mat * vec
+                if vec2.length != 0:
+                    vec2 /= vec2.length
+            if vec2.length == 0:
+                vec2 = mathutils.Vector((1.0, 1.0, 1.0))
             normal = vec2
         normals.append(normal)
     # have plane normals face in the same direction (maximum angle: 90 degrees)



More information about the Bf-extensions-cvs mailing list