[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