[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