Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import bpy
- import bmesh
- obj = bpy.context.active_object
- mesh = obj.data
- bm = bmesh.new()
- bm.from_mesh(mesh)
- def element_id_layer(elems, id_name):
- """
- This function will create/print new layers
- """
- # Try to get layer of vertex IDs
- lay = bm.loops.layers.int.get(id_name)
- if lay is not None:
- print('Layer ', id_name, ' already exists')
- else:
- print('Creating layer ', id_name)
- lay = bm.loops.layers.int.new(id_name)
- # Set values in layer
- elems_iter = getattr(bm, elems)
- for elem in elems_iter:
- print(elem)
- if elems == 'faces':
- for loop in elem.loops:
- loop[lay] = elem.index
- print(loop[lay])
- else:
- for loop in elem.link_loops:
- loop[lay] = elem.index
- print(loop[lay])
- element_id_layer('verts', 'VertIDs')
- element_id_layer('edges', 'EdgeIDs')
- element_id_layer('faces', 'FaceIDs')
- bm.to_mesh(mesh)
- bm.free()
- Creating layer VertIDs
- <BMVert(0x7fbb5da88010), index=0>
- 0
- 0
- 0
- <BMVert(0x7fbb5da88048), index=1>
- 1
- 1
- 1
- ...
- Creating layer EdgeIDs
- <BMEdge(0x7fbb5d942010), index=0, verts=(0x7fbb5da88010/0, 0x7fbb5da880f0/4)>
- 0
- 0
- <BMEdge(0x7fbb5d942060), index=1, verts=(0x7fbb5da880f0/4, 0x7fbb5da88128/5)>
- 1
- 1
- ...
- Creating layer FaceIDs
- <BMFace(0x7fbb5dafd010), index=0, totverts=4>
- 0
- 0
- 0
- 0
- <BMFace(0x7fbb5dafd048), index=1, totverts=4>
- 1
- 1
- 1
- 1
- ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement