Newer
Older
# -------------------------------------------------------------
def get_selected_vertex(myobject):
mylist = []
# if not mesh, no vertex
if myobject.type != "MESH":
return mylist
# --------------------
# meshes
# --------------------
oldobj = bpy.context.object
bpy.context.view_layer.objects.active = myobject
flag = False
if myobject.mode != 'EDIT':
bpy.ops.object.mode_set(mode='EDIT')
flag = True
bm = from_edit_mesh(myobject.data)
tv = len(bm.verts)
for v in bm.verts:
if v.select:
if flag is True:
bpy.ops.object.editmode_toggle()
# Back context object
bpy.context.view_layer.objects.active = oldobj
# if select all vertices, then use origin
if tv == len(mylist):
return []
return mylist
# -------------------------------------------------------------
# Get vertex selected
# -------------------------------------------------------------
def get_selected_vertex_history(myobject):
mylist = []
# if not mesh, no vertex
if myobject.type != "MESH":
return mylist
# --------------------
# meshes
# --------------------
oldobj = bpy.context.object
bpy.context.view_layer.objects.active = myobject
flag = False
if myobject.mode != 'EDIT':
bpy.ops.object.mode_set(mode='EDIT')
flag = True
bm = from_edit_mesh(myobject.data)
for v in bm.select_history:
if flag is True:
bpy.ops.object.editmode_toggle()
# Back context object
bpy.context.view_layer.objects.active = oldobj
return mylist
# -------------------------------------------------------------
# Get vertex selected segments
# -------------------------------------------------------------
def get_smart_selected(myobject):
mylist = []
# if not mesh, no vertex
if myobject.type != "MESH":
return mylist
# --------------------
# meshes
# --------------------
oldobj = bpy.context.object
bpy.context.view_layer.objects.active = myobject
flag = False
if myobject.mode != 'EDIT':
bpy.ops.object.mode_set(mode='EDIT')
flag = True
bm = from_edit_mesh(myobject.data)
for e in bm.edges:
if e.select is True:
mylist.append(e.verts[0].index)
mylist.append(e.verts[1].index)
if flag is True:
bpy.ops.object.editmode_toggle()
# Back context object
bpy.context.view_layer.objects.active = oldobj
return mylist
# -------------------------------------------------------------
# Get vertex selected faces
# -------------------------------------------------------------
def get_selected_faces(myobject):
mylist = []
# if not mesh, no vertex
if myobject.type != "MESH":
return mylist
# --------------------
# meshes
# --------------------
oldobj = bpy.context.object
bpy.context.view_layer.objects.active = myobject
flag = False
if myobject.mode != 'EDIT':
bpy.ops.object.mode_set(mode='EDIT')
flag = True
bm = from_edit_mesh(myobject.data)
for e in bm.faces:
if e.select is True:
for i in range(len(e.verts)):
myfaces.append(e.verts[i].index)
if flag is True:
bpy.ops.object.editmode_toggle()
# Back context object
bpy.context.view_layer.objects.active = oldobj
return mylist