[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45279] trunk/blender/release/scripts/ templates/operator_mesh_add.py: updated add mesh template for bmesh.

Campbell Barton ideasman42 at gmail.com
Fri Mar 30 07:43:43 CEST 2012


Revision: 45279
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45279
Author:   campbellbarton
Date:     2012-03-30 05:43:33 +0000 (Fri, 30 Mar 2012)
Log Message:
-----------
updated add mesh template for bmesh. thanks to PKHG for initial conversion.

Modified Paths:
--------------
    trunk/blender/release/scripts/templates/operator_mesh_add.py

Modified: trunk/blender/release/scripts/templates/operator_mesh_add.py
===================================================================
--- trunk/blender/release/scripts/templates/operator_mesh_add.py	2012-03-30 05:26:08 UTC (rev 45278)
+++ trunk/blender/release/scripts/templates/operator_mesh_add.py	2012-03-30 05:43:33 UTC (rev 45279)
@@ -1,4 +1,5 @@
 import bpy
+import bmesh
 
 
 def add_box(width, height, depth):
@@ -7,31 +8,29 @@
     no actual mesh data creation is done here.
     """
 
-    vertices = [1.0, 1.0, -1.0,
-                1.0, -1.0, -1.0,
-                -1.0, -1.0, -1.0,
-                -1.0, 1.0, -1.0,
-                1.0, 1.0, 1.0,
-                1.0, -1.0, 1.0,
-                -1.0, -1.0, 1.0,
-                -1.0, 1.0, 1.0,
-                ]
+    verts = [(+1.0, +1.0, -1.0),
+             (+1.0, -1.0, -1.0),
+             (-1.0, -1.0, -1.0),
+             (-1.0, +1.0, -1.0),
+             (+1.0, +1.0, +1.0),
+             (+1.0, -1.0, +1.0),
+             (-1.0, -1.0, +1.0),
+             (-1.0, +1.0, +1.0),
+             ]
 
-    faces = [0, 1, 2, 3,
-             4, 7, 6, 5,
-             0, 4, 5, 1,
-             1, 5, 6, 2,
-             2, 6, 7, 3,
-             4, 0, 3, 7,
+    faces = [(0, 1, 2, 3),
+             (4, 7, 6, 5),
+             (0, 4, 5, 1),
+             (1, 5, 6, 2),
+             (2, 6, 7, 3),
+             (4, 0, 3, 7),
             ]
 
     # apply size
-    for i in range(0, len(vertices), 3):
-        vertices[i] *= width
-        vertices[i + 1] *= depth
-        vertices[i + 2] *= height
+    for i, v in enumerate(verts):
+        verts[i] = v[0] * width, v[1] * depth, v[2] * height
 
-    return vertices, faces
+    return verts, faces
 
 
 from bpy.props import FloatProperty, BoolProperty, FloatVectorProperty
@@ -85,11 +84,15 @@
 
         mesh = bpy.data.meshes.new("Box")
 
-        mesh.vertices.add(len(verts_loc) // 3)
-        mesh.faces.add(len(faces) // 4)
+        bm = bmesh.new()
 
-        mesh.vertices.foreach_set("co", verts_loc)
-        mesh.faces.foreach_set("vertices_raw", faces)
+        for v_co in verts_loc:
+            bm.verts.new(v_co)
+
+        for f_idx in faces:
+            bm.faces.new([bm.verts[i] for i in f_idx])
+
+        bm.to_mesh(mesh)
         mesh.update()
 
         # add the mesh as an object into the scene with this utility module




More information about the Bf-blender-cvs mailing list