[#18082] make uvcalc_follow_active_coords.py bypass the gui and accept arguments when called from another script

from Bill N (slow67)

Also made uvcalc_quad_clickproj.py and uvcalc_follow_active_coords.py add UV's if they didn't exist.
This commit is contained in:
Campbell Barton 2009-01-12 04:07:06 +00:00
parent 278d6758ea
commit ae15fc5e46
2 changed files with 29 additions and 24 deletions

@ -42,28 +42,15 @@ from Blender import *
import bpy
import BPyMesh
def extend():
sce = bpy.data.scenes.active
ob = sce.objects.active
# print ob, ob.type
if ob == None or ob.type != 'Mesh':
Draw.PupMenu('ERROR: No mesh object.')
def extend(EXTEND_MODE,ob):
if EXTEND_MODE == -1:
return
# Toggle Edit mode
me = ob.getData(mesh=1)
me_verts = me.verts
# Toggle Edit mode
is_editmode = Window.EditMode()
if is_editmode:
Window.EditMode(0)
me = ob.getData(mesh=1)
me_verts = me.verts
# 0:normal extend, 1:edge length
EXTEND_MODE = Draw.PupMenu("Use Face Area%t|Loop Average%x2|None%x0")
if EXTEND_MODE == -1:
return
Window.WaitCursor(1)
t = sys.time()
edge_average_lengths = {}
@ -153,8 +140,7 @@ def extend():
uvs_vhash_target[edgepair_outer_target[iA]][:] = uvs_vhash_source[edgepair_inner_source[1]] + (uvs_vhash_source[edgepair_inner_source[1]] - uvs_vhash_source[edgepair_outer_source[0]])
if not me.faceUV:
Draw.PupMenu('ERROR: Mesh has no face UV coords.')
return
me.faceUV= True
face_act = me.activeFace
if face_act == -1:
@ -247,7 +233,22 @@ def extend():
Window.RedrawAll()
Window.WaitCursor(0)
if __name__ == '__main__':
extend()
def main():
sce = bpy.data.scenes.active
ob = sce.objects.active
# print ob, ob.type
if ob == None or ob.type != 'Mesh':
Draw.PupMenu('ERROR: No mesh object.')
return
# 0:normal extend, 1:edge length
EXTEND_MODE = Draw.PupMenu("Use Face Area%t|Loop Average%x2|None%x0")
extend(EXTEND_MODE,ob)
if __name__ == '__main__':
main()

@ -171,6 +171,9 @@ def main():
f_uv = f.uv
return [(v.co-face_corner_main, f_uv[i]) for i,v in enumerate(f.v)]
if me.faceUV==False:
me.faceUV= True
coords = [ (co,uv) for f in me.faces if f.sel for co, uv in get_face_coords(f)]
coords_orig = [uv.copy() for co, uv in coords]
@ -264,4 +267,5 @@ def main():
if __name__=='__main__':
main()
Window.DrawProgressBar(1.0, '')
Window.DrawProgressBar(1.0, '')