@@ -33,21 +33,21 @@ def align_islands(self, context):
3333 me = ob .data
3434 bm = bmesh .from_edit_mesh (me )
3535 uv = bm .loops .layers .uv .verify ()
36- for island in get_islands (uv , bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
36+ for island in get_islands (bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
3737 bbox = get_bbox (uv , island )
3838 bboxes .append (bbox )
3939
4040 if not bboxes :
4141 return {'CANCELED' }
4242
4343 if self .align_uv == 'MAX_U' :
44- max_u = max ([ bbox [1 ][0 ] for bbox in bboxes ] )
44+ max_u = max (bbox [1 ][0 ] for bbox in bboxes )
4545 for ob in context .objects_in_mode_unique_data :
4646 seams = objects_seams [ob ]
4747 me = ob .data
4848 bm = bmesh .from_edit_mesh (me )
4949 uv = bm .loops .layers .uv .verify ()
50- for island in get_islands (uv , bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
50+ for island in get_islands (bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
5151 bbox = get_bbox (uv , island )
5252 bbox_max_u = bbox [1 ][0 ]
5353 distance = max_u - bbox_max_u
@@ -58,14 +58,14 @@ def align_islands(self, context):
5858 l [uv ].uv = new_co
5959 bmesh .update_edit_mesh (me )
6060
61- if self .align_uv == 'MIN_U' :
62- min_u = min ([ bbox [0 ][0 ] for bbox in bboxes ] )
61+ elif self .align_uv == 'MIN_U' :
62+ min_u = min (bbox [0 ][0 ] for bbox in bboxes )
6363 for ob in context .objects_in_mode_unique_data :
6464 seams = objects_seams [ob ]
6565 me = ob .data
6666 bm = bmesh .from_edit_mesh (me )
6767 uv = bm .loops .layers .uv .verify ()
68- for island in get_islands (uv , bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
68+ for island in get_islands (bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
6969 bbox = get_bbox (uv , island )
7070 bbox_min_u = bbox [0 ][0 ]
7171 distance = bbox_min_u - min_u
@@ -76,14 +76,14 @@ def align_islands(self, context):
7676 l [uv ].uv = new_co
7777 bmesh .update_edit_mesh (me )
7878
79- if self .align_uv == 'MAX_V' :
80- max_v = max ([ bbox [1 ][1 ] for bbox in bboxes ] )
79+ elif self .align_uv == 'MAX_V' :
80+ max_v = max (bbox [1 ][1 ] for bbox in bboxes )
8181 for ob in context .objects_in_mode_unique_data :
8282 seams = objects_seams [ob ]
8383 me = ob .data
8484 bm = bmesh .from_edit_mesh (me )
8585 uv = bm .loops .layers .uv .verify ()
86- for island in get_islands (uv , bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
86+ for island in get_islands (bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
8787 bbox = get_bbox (uv , island )
8888 bbox_max_v = bbox [1 ][1 ]
8989 distance = max_v - bbox_max_v
@@ -94,14 +94,14 @@ def align_islands(self, context):
9494 l [uv ].uv = new_co
9595 bmesh .update_edit_mesh (me )
9696
97- if self .align_uv == 'MIN_V' :
98- min_v = min ([ bbox [0 ][1 ] for bbox in bboxes ] )
97+ elif self .align_uv == 'MIN_V' :
98+ min_v = min (bbox [0 ][1 ] for bbox in bboxes )
9999 for ob in context .objects_in_mode_unique_data :
100100 seams = objects_seams [ob ]
101101 me = ob .data
102102 bm = bmesh .from_edit_mesh (me )
103103 uv = bm .loops .layers .uv .verify ()
104- for island in get_islands (uv , bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
104+ for island in get_islands (bm , seams , has_selected_faces = True , islands_with_hidden_faces = False ):
105105 bbox = get_bbox (uv , island )
106106 bbox_min_v = bbox [0 ][1 ]
107107 distance = bbox_min_v - min_v
@@ -121,10 +121,11 @@ def align_vertices(self, context):
121121 uv = bm .loops .layers .uv .verify ()
122122
123123 for f in bm .faces :
124- if f .select :
125- for l in f .loops :
126- if l [uv ].select :
127- coords .append (l [uv ].uv [:])
124+ if not f .select :
125+ continue
126+ for l in f .loops :
127+ if l .uv_select_edge :
128+ coords .append (l [uv ].uv [:])
128129
129130 if not coords :
130131 return {'CANCELED' }
@@ -135,44 +136,53 @@ def align_vertices(self, context):
135136 uv = bm .loops .layers .uv .verify ()
136137
137138 if self .align_uv == 'MAX_U' :
138- u = max ([ uv [0 ] for uv in coords ] )
139+ u = max (uv [0 ] for uv in coords )
139140 for f in bm .faces :
140- if f .select :
141- for l in f .loops :
142- if l [uv ].select :
143- for l in l .vert .link_loops :
144- if l [uv ].select :
145- l [uv ].uv [0 ] = u
146-
147- if self .align_uv == 'MIN_U' :
148- u = min ([uv [0 ] for uv in coords ])
141+ if not f .select :
142+ continue
143+ for l in f .loops :
144+ if not l .uv_select_edge :
145+ continue
146+ for l in l .vert .link_loops :
147+ if l .uv_select_edge :
148+ l [uv ].uv [0 ] = u
149+
150+ elif self .align_uv == 'MIN_U' :
151+ u = min (uv [0 ] for uv in coords )
149152 for f in bm .faces :
150- if f .select :
151- for l in f .loops :
152- if l [uv ].select :
153- for l in l .vert .link_loops :
154- if l [uv ].select :
155- l [uv ].uv [0 ] = u
156-
157- if self .align_uv == 'MAX_V' :
158- v = max ([uv [1 ] for uv in coords ])
153+ if not f .select :
154+ continue
155+ for l in f .loops :
156+ if not l .uv_select_edge :
157+ continue
158+ for l in l .vert .link_loops :
159+ if l .uv_select_edge :
160+ l [uv ].uv [0 ] = u
161+
162+ elif self .align_uv == 'MAX_V' :
163+ v = max (uv [1 ] for uv in coords )
159164 for f in bm .faces :
160- if f .select :
161- for l in f .loops :
162- if l [uv ].select :
163- for l in l .vert .link_loops :
164- if l [uv ].select :
165- l [uv ].uv [1 ] = v
166-
167- if self .align_uv == 'MIN_V' :
168- v = min ([uv [1 ] for uv in coords ])
165+ if not f .select :
166+ continue
167+ for l in f .loops :
168+ if not l .uv_select_edge :
169+ continue
170+ for l in l .vert .link_loops :
171+ if l .uv_select_edge :
172+ l [uv ].uv [1 ] = v
173+
174+ elif self .align_uv == 'MIN_V' :
175+ v = min (uv [1 ] for uv in coords )
169176 for f in bm .faces :
170- if f .select :
171- for l in f .loops :
172- if l [uv ].select :
173- for l in l .vert .link_loops :
174- if l [uv ].select :
175- l [uv ].uv [1 ] = v
177+ if not f .select :
178+ continue
179+ for l in f .loops :
180+ if not l .uv_select_edge :
181+ continue
182+ for l in l .vert .link_loops :
183+ if l .uv_select_edge :
184+ l [uv ].uv [1 ] = v
185+
176186 bmesh .update_edit_mesh (me )
177187
178188 def execute (self , context ):
0 commit comments