[Bf-blender-cvs] [4f4e0ec] master: Remove eekadoodle workaround for add torus

Campbell Barton noreply at git.blender.org
Fri Nov 25 04:12:49 CET 2016


Commit: 4f4e0ecdcfea277e2b310e1abbe1f570a4e997f6
Author: Campbell Barton
Date:   Fri Nov 25 11:34:15 2016 +1100
Branches: master
https://developer.blender.org/rB4f4e0ecdcfea277e2b310e1abbe1f570a4e997f6

Remove eekadoodle workaround for add torus

This is no longer needed since moving to MPoly/MLoop data structure.

Also use 3x3 matrix for transforming instead of quaternion
(slightly better performance).

===================================================================

M	release/scripts/startup/bl_operators/add_mesh_torus.py

===================================================================

diff --git a/release/scripts/startup/bl_operators/add_mesh_torus.py b/release/scripts/startup/bl_operators/add_mesh_torus.py
index f12e748..1f0acba 100644
--- a/release/scripts/startup/bl_operators/add_mesh_torus.py
+++ b/release/scripts/startup/bl_operators/add_mesh_torus.py
@@ -32,25 +32,24 @@ from bpy_extras import object_utils
 
 def add_torus(major_rad, minor_rad, major_seg, minor_seg):
     from math import cos, sin, pi
-    from mathutils import Vector, Quaternion
+    from mathutils import Vector, Matrix
 
-    PI_2 = pi * 2.0
-    z_axis = 0.0, 0.0, 1.0
+    pi_2 = pi * 2.0
 
     verts = []
     faces = []
     i1 = 0
     tot_verts = major_seg * minor_seg
     for major_index in range(major_seg):
-        quat = Quaternion(z_axis, (major_index / major_seg) * PI_2)
+        matrix = Matrix.Rotation((major_index / major_seg) * pi_2, 3, 'Z')
 
         for minor_index in range(minor_seg):
-            angle = 2 * pi * minor_index / minor_seg
+            angle = pi_2 * minor_index / minor_seg
 
-            vec = quat * Vector((major_rad + (cos(angle) * minor_rad),
-                                 0.0,
-                                 (sin(angle) * minor_rad),
-                                 ))
+            vec = matrix * Vector((major_rad + (cos(angle) * minor_rad),
+                                   0.0,
+                                   sin(angle) * minor_rad,
+                                   ))
 
             verts.extend(vec[:])
 
@@ -58,7 +57,6 @@ def add_torus(major_rad, minor_rad, major_seg, minor_seg):
                 i2 = (major_index) * minor_seg
                 i3 = i1 + minor_seg
                 i4 = i2 + minor_seg
-
             else:
                 i2 = i1 + 1
                 i3 = i1 + minor_seg
@@ -71,11 +69,7 @@ def add_torus(major_rad, minor_rad, major_seg, minor_seg):
             if i4 >= tot_verts:
                 i4 = i4 - tot_verts
 
-            # stupid eekadoodle
-            if i2:
-                faces.extend([i1, i3, i4, i2])
-            else:
-                faces.extend([i2, i1, i3, i4])
+            faces.extend([i1, i3, i4, i2])
 
             i1 += 1




More information about the Bf-blender-cvs mailing list