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);
示例#2
0
 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)
示例#3
0
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);
示例#4
0
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)