def saw_uvs(self, mode='after'): if mode == 'after': saw_edges = self.saw_edges self.n_uvs = [] else: saw_edges = common.conv_comp(self.s_edges, mode='vtx') saw_edges = common.conv_comp(saw_edges, mode='edge') for edge in self.s_edges: saw_edges.remove(edge) if not saw_edges: return checked_edges = [] for edge in saw_edges: uvs = common.conv_comp(edge, mode='uv') uv_pos = [ str(map(lambda x: round(x, 5), cmds.polyEditUV(uv, q=True))) for uv in uvs ] #print len(uv_pos) uv_pos = list(set(uv_pos)) #if mode=='pre': #print edge, len(uv_pos) if len(uv_pos) > 2: continue checked_edges.append(edge) if checked_edges: cmds.polyMapSew(checked_edges, ch=True) cmds.polyMapSew(self.s_edges, ch=True) #付け根のUVを縫合する self.saw_edges = [] cmds.select(self.ex_edges, r=True) #ExtrudeEdgeUV()._init_ui()
def combine(comps=None, move=None, hist=None): """Sews all internal edges of given shell [Select uv shell]""" hist = True if hist is None else hist lssl = cm.ls(comps, type="float3") if not lssl: lssl = cm.ls(sl=1, type="float3") inner_e = cm.polyListComponentConversion(lssl, internal=1, te=1) if move: cm.polyMapSewMove(inner_e, nf=10, lps=0, ch=hist) else: cm.polyMapSew(inner_e, ch=hist)
def polyMapSew(*args, **kwargs): res = cmds.polyMapSew(*args, **kwargs) if not kwargs.get('query', kwargs.get('q', False)): res = _factories.maybeConvert(res, _general.PyNode) return res