Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. import bpy
  2. import bmesh
  3.  
  4. obj = bpy.context.active_object
  5. mesh = obj.data
  6. bm = bmesh.new()
  7. bm.from_mesh(mesh)
  8.  
  9. def element_id_layer(elems, id_name):
  10. """
  11. This function will create/print new layers
  12. """
  13.  
  14. # Try to get layer of vertex IDs
  15. lay = bm.loops.layers.int.get(id_name)
  16. if lay is not None:
  17. print('Layer ', id_name, ' already exists')
  18. else:
  19. print('Creating layer ', id_name)
  20. lay = bm.loops.layers.int.new(id_name)
  21. # Set values in layer
  22. elems_iter = getattr(bm, elems)
  23. for elem in elems_iter:
  24. print(elem)
  25. if elems == 'faces':
  26. for loop in elem.loops:
  27. loop[lay] = elem.index
  28. print(loop[lay])
  29. else:
  30. for loop in elem.link_loops:
  31. loop[lay] = elem.index
  32. print(loop[lay])
  33.  
  34. element_id_layer('verts', 'VertIDs')
  35. element_id_layer('edges', 'EdgeIDs')
  36. element_id_layer('faces', 'FaceIDs')
  37.  
  38. bm.to_mesh(mesh)
  39. bm.free()
  40.  
  41. Creating layer VertIDs
  42. <BMVert(0x7fbb5da88010), index=0>
  43. 0
  44. 0
  45. 0
  46. <BMVert(0x7fbb5da88048), index=1>
  47. 1
  48. 1
  49. 1
  50. ...
  51.  
  52. Creating layer EdgeIDs
  53. <BMEdge(0x7fbb5d942010), index=0, verts=(0x7fbb5da88010/0, 0x7fbb5da880f0/4)>
  54. 0
  55. 0
  56. <BMEdge(0x7fbb5d942060), index=1, verts=(0x7fbb5da880f0/4, 0x7fbb5da88128/5)>
  57. 1
  58. 1
  59. ...
  60.  
  61. Creating layer FaceIDs
  62. <BMFace(0x7fbb5dafd010), index=0, totverts=4>
  63. 0
  64. 0
  65. 0
  66. 0
  67. <BMFace(0x7fbb5dafd048), index=1, totverts=4>
  68. 1
  69. 1
  70. 1
  71. 1
  72. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement