Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-05-05 09:54:29 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-05-05 09:54:29 +0400
commit998b9241bedea82f4501b4c4e5453d7becb07d3e (patch)
tree4cd665a917d259c71423297c0f13e5ccabb64f78
parent36c4dc2d5b530caf778bd1167740c7cb0b2a053d (diff)
correct bmesh api crossref and update uv-operator template.
-rw-r--r--release/scripts/templates_py/operator_uv.py29
-rw-r--r--source/blender/python/bmesh/bmesh_py_types.c21
2 files changed, 26 insertions, 24 deletions
diff --git a/release/scripts/templates_py/operator_uv.py b/release/scripts/templates_py/operator_uv.py
index fdd0b993f8b..4d25b7af37e 100644
--- a/release/scripts/templates_py/operator_uv.py
+++ b/release/scripts/templates_py/operator_uv.py
@@ -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)
-
- if not mesh.uv_textures:
- uvtex = bpy.ops.mesh.uv_texture_add()
- else:
- uvtex = mesh.uv_textures.active
+ uv_layer = bm.loops.layers.uv.verify()
# 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 @@ class UvOperator(bpy.types.Operator):
@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)
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index 01503d2b1c5..55a6f3c41c4 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -592,8 +592,17 @@ static PyObject *bpy_bmloop_is_convex_get(BPy_BMLoop *self)
* ^^^^^^^ */
/* 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)
{
@@ -759,21 +768,21 @@ static PyGetSetDef bpy_bmloop_getseters[] = {
};
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 */
};