[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56499] trunk/blender: correct bmesh api crossref and update uv-operator template.

Campbell Barton ideasman42 at gmail.com
Sun May 5 07:54:29 CEST 2013


Revision: 56499
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56499
Author:   campbellbarton
Date:     2013-05-05 05:54:29 +0000 (Sun, 05 May 2013)
Log Message:
-----------
correct bmesh api crossref and update uv-operator template.

Modified Paths:
--------------
    trunk/blender/release/scripts/templates_py/operator_uv.py
    trunk/blender/source/blender/python/bmesh/bmesh_py_types.c

Modified: trunk/blender/release/scripts/templates_py/operator_uv.py
===================================================================
--- trunk/blender/release/scripts/templates_py/operator_uv.py	2013-05-04 23:12:17 UTC (rev 56498)
+++ trunk/blender/release/scripts/templates_py/operator_uv.py	2013-05-05 05:54:29 UTC (rev 56499)
@@ -1,29 +1,23 @@
 import bpy
+import bmesh
 
 
 def main(context):
     obj = context.active_object
-    mesh = obj.data
+    me = obj.data
+    bm = bmesh.from_edit_mesh(me)
 
-    is_editmode = (obj.mode == 'EDIT')
-    if is_editmode:
-        bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+    uv_layer = bm.loops.layers.uv.verify()
 
-    if not mesh.uv_textures:
-        uvtex = bpy.ops.mesh.uv_texture_add()
-    else:
-        uvtex = mesh.uv_textures.active
-
     # adjust UVs
-    for i, uv in enumerate(uvtex.data):
-        uvs = uv.uv1, uv.uv2, uv.uv3, uv.uv4
-        for j, v_idx in enumerate(mesh.faces[i].vertices):
-            if uv.select_uv[j]:
+    for f in bm.faces:
+        for l in f.loops:
+            luv = l[uv_layer]
+            if luv.select:
                 # apply the location of the vertex as a UV
-                uvs[j][:] = mesh.vertices[v_idx].co.xy
+                luv.uv = l.vert.co.xy
 
-    if is_editmode:
-        bpy.ops.object.mode_set(mode='EDIT', toggle=False)
+    bmesh.update_edit_mesh(me)
 
 
 class UvOperator(bpy.types.Operator):
@@ -33,8 +27,7 @@
 
     @classmethod
     def poll(cls, context):
-        obj = context.active_object
-        return (obj and obj.type == 'MESH')
+        return (context.mode == 'EDIT_MESH')
 
     def execute(self, context):
         main(context)

Modified: trunk/blender/source/blender/python/bmesh/bmesh_py_types.c
===================================================================
--- trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2013-05-04 23:12:17 UTC (rev 56498)
+++ trunk/blender/source/blender/python/bmesh/bmesh_py_types.c	2013-05-05 05:54:29 UTC (rev 56499)
@@ -592,9 +592,18 @@
  * ^^^^^^^ */
 
 /* note: use for bmvert/edge/face/loop seq's use these, not bmelemseq directly */
-PyDoc_STRVAR(bpy_bmelemseq_layers_doc,
-"custom-data layers (read-only).\n\n:type: :class:`BMLayerAccess`"
+PyDoc_STRVAR(bpy_bmelemseq_layers_vert_doc,
+"custom-data layers (read-only).\n\n:type: :class:`BMLayerAccessVert`"
 );
+PyDoc_STRVAR(bpy_bmelemseq_layers_edge_doc,
+"custom-data layers (read-only).\n\n:type: :class:`BMLayerAccessEdge`"
+);
+PyDoc_STRVAR(bpy_bmelemseq_layers_face_doc,
+"custom-data layers (read-only).\n\n:type: :class:`BMLayerAccessFace`"
+);
+PyDoc_STRVAR(bpy_bmelemseq_layers_loop_doc,
+"custom-data layers (read-only).\n\n:type: :class:`BMLayerAccessLoop`"
+);
 static PyObject *bpy_bmelemseq_layers_get(BPy_BMElemSeq *self, void *htype)
 {
 	BPY_BM_CHECK_OBJ(self);
@@ -759,21 +768,21 @@
 };
 
 static PyGetSetDef bpy_bmvertseq_getseters[] = {
-	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_VERT},
+	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_vert_doc, (void *)BM_VERT},
 	{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 static PyGetSetDef bpy_bmedgeseq_getseters[] = {
-	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_EDGE},
+	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_edge_doc, (void *)BM_EDGE},
 	{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 static PyGetSetDef bpy_bmfaceseq_getseters[] = {
-	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_FACE},
+	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_face_doc, (void *)BM_FACE},
 	/* face only */
 	{(char *)"active",    (getter)bpy_bmfaceseq_active_get, (setter)bpy_bmfaceseq_active_set, (char *)bpy_bmfaceseq_active_doc, NULL},
 	{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 static PyGetSetDef bpy_bmloopseq_getseters[] = {
-	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_doc, (void *)BM_LOOP},
+	{(char *)"layers",    (getter)bpy_bmelemseq_layers_get, (setter)NULL, (char *)bpy_bmelemseq_layers_loop_doc, (void *)BM_LOOP},
 	{NULL, NULL, NULL, NULL, NULL} /* Sentinel */
 };
 




More information about the Bf-blender-cvs mailing list