def doIt(self, args): dagPath = mt.selected_dagPath(); meshFn = om.MFnMesh(dagPath); mel.eval("SelectVertexMask"); cmds.select(cl=True); for k in range(meshFn.numVertices()): ve = mt.vertex_edges(dagPath, k); vf = mt.vertex_faces(dagPath, k); if len(ve)==2 and len(vf)>1: cmds.select(dagPath.fullPathName()+".vtx["+str(k)+"]", tgl=True);
def doIt(self, args): dagPath = mt.selected_dagPath() meshFn = om.MFnMesh(dagPath) mel.eval("SelectVertexMask") cmds.select(cl=True) for k in range(meshFn.numVertices()): ve = mt.vertex_edges(dagPath, k) vf = mt.vertex_faces(dagPath, k) if len(ve) == 2 and len(vf) > 1: cmds.select(dagPath.fullPathName() + ".vtx[" + str(k) + "]", tgl=True)
def get_CV_line(dagPath, v, eK1, eK2): meshFn = om.MFnMesh(dagPath); e = mt.vertex_edges(dagPath, v); if e[0]==eK1 or e[0]==eK2: e = [e[1], e[3]]; else: e = [e[0], e[2]]; tccNode = mt.get_TCC_DGnode(dagPath); T = cmds.getAttr(tccNode.name()+".T"); he = []; hv = []; for eK in e: f = mt.edge_faces(dagPath, eK); he0 = mt.halfedge(dagPath, f[0], eK1); if he0[1]==-1: he0 = mt.halfedge(dagPath, f[0], eK2); eN = mt.edge(mt.next(he0)); dir = 0; if eN == e[0] or eN == e[1]: dir = 1; else: dir = -1; he0 = mt.next(he0, dir); T0 = mt.get_halfedge_data(dagPath, T, he0) if dir ==1 else mt.get_halfedge_data(dagPath, T, mt.prev(he0)); he1 = mt.next(he0, dir) if T0 else mt.next(mt.twin(mt.next(he0, dir)),dir); T1 = mt.get_halfedge_data(dagPath, T, he1) if dir ==1 else mt.get_halfedge_data(dagPath, T, mt.prev(he1)); he2 = mt.next(he1, dir) if T1 else mt.next(mt.twin(mt.next(he1, dir)),dir); he.append(he0); he.append(he1); he.append(he2); hv.append(mt.tip(he0, dir)); hv.append(mt.tip(he1, dir)); hv.append(mt.tip(he2, dir)); he = [ he[2], he[1], he[0], he[3], he[4], he[5] ]; hv = [ hv[2], hv[1], hv[0], v, hv[3], hv[4], hv[5] ]; return (he, hv);
def get_CV_line(dagPath, v, eK1, eK2): meshFn = om.MFnMesh(dagPath) e = mt.vertex_edges(dagPath, v) if e[0] == eK1 or e[0] == eK2: e = [e[1], e[3]] else: e = [e[0], e[2]] tccNode = mt.get_TCC_DGnode(dagPath) T = cmds.getAttr(tccNode.name() + ".T") he = [] hv = [] for eK in e: f = mt.edge_faces(dagPath, eK) he0 = mt.halfedge(dagPath, f[0], eK1) if he0[1] == -1: he0 = mt.halfedge(dagPath, f[0], eK2) eN = mt.edge(mt.next(he0)) dir = 0 if eN == e[0] or eN == e[1]: dir = 1 else: dir = -1 he0 = mt.next(he0, dir) T0 = mt.get_halfedge_data(dagPath, T, he0) if dir == 1 else mt.get_halfedge_data(dagPath, T, mt.prev(he0)) he1 = mt.next(he0, dir) if T0 else mt.next(mt.twin(mt.next(he0, dir)), dir) T1 = mt.get_halfedge_data(dagPath, T, he1) if dir == 1 else mt.get_halfedge_data(dagPath, T, mt.prev(he1)) he2 = mt.next(he1, dir) if T1 else mt.next(mt.twin(mt.next(he1, dir)), dir) he.append(he0) he.append(he1) he.append(he2) hv.append(mt.tip(he0, dir)) hv.append(mt.tip(he1, dir)) hv.append(mt.tip(he2, dir)) he = [he[2], he[1], he[0], he[3], he[4], he[5]] hv = [hv[2], hv[1], hv[0], v, hv[3], hv[4], hv[5]] return (he, hv)