Ejemplo n.º 1
0
def _loadEdgeBoundary(menuitem, skeleton, name, edges, exterior):
    ##    debug.fmsg()
    # "edges" is a list of pairs of integer indices into skeleton.nodes
    skelcontext = skeletoncontext.skeletonContexts[skeleton]
    skeleton = skelcontext.getObject()
    seglist = [
        skeleton.getSegment(*[skeleton.nodes[i] for i in e]) for e in edges
    ]
    #Interface branch
    try:
        (segs, nodes, winding) = skeletonsegment.segSequence(seglist)
        startnode = skeleton.nodes[edges[0][0]]
        skelcontext.createEdgeBoundary(name,
                                       seglist,
                                       startnode,
                                       exterior,
                                       autoselect=0)
    except skeletonsegment.SequenceError:
        directionlist = []
        for i in range(len(edges)):
            if seglist[i].get_nodes()[0] == skeleton.nodes[edges[i][0]]:
                directionlist.append(1)
            else:
                directionlist.append(-1)
        skelcontext.createNonsequenceableEdgeBoundary(name,
                                                      seglist,
                                                      directionlist,
                                                      exterior,
                                                      autoselect=0)
Ejemplo n.º 2
0
def _loadSegmentGroup(menuitem, skeleton, name, segments):
##    debug.fmsg()
    # segments is a list of tuples of integer indices into skeleton.nodes.
    skelcontext = skeletoncontext.skeletonContexts[skeleton]
    skeleton = skelcontext.getObject()
    groupset = skelcontext.segmentgroups
    groupset.addGroup(name)
    groupset.addToGroup(**{name : [skeleton.getSegment(skeleton.nodes[i],
                                                       skeleton.nodes[j])
                                   for (i,j) in segments]})
Ejemplo n.º 3
0
def _loadSegmentGroup(menuitem, skeleton, name, segments):
    ##    debug.fmsg()
    # segments is a list of tuples of integer indices into skeleton.nodes.
    skelcontext = skeletoncontext.skeletonContexts[skeleton]
    skeleton = skelcontext.getObject()
    groupset = skelcontext.segmentgroups
    groupset.addGroup(name)
    groupset.addToGroup(
        **{
            name: [
                skeleton.getSegment(skeleton.nodes[i], skeleton.nodes[j])
                for (i, j) in segments
            ]
        })
Ejemplo n.º 4
0
def _loadEdgeBoundary(menuitem, skeleton, name, edges, exterior):
##    debug.fmsg()
    # "edges" is a list of pairs of integer indices into skeleton.nodes
    skelcontext = skeletoncontext.skeletonContexts[skeleton]
    skeleton = skelcontext.getObject()
    seglist = [skeleton.getSegment(
        *[skeleton.nodes[i] for i in e] )
               for e in edges]
    #Interface branch
    try:
        (segs, nodes, winding) = skeletonsegment.segSequence(seglist)
        startnode = skeleton.nodes[edges[0][0]]
        skelcontext.createEdgeBoundary(name, seglist, startnode,
                                       exterior, autoselect=0)
    except skeletonsegment.SequenceError:
        directionlist=[]
        for i in range(len(edges)):
            if seglist[i].get_nodes()[0]==skeleton.nodes[edges[i][0]]:
                directionlist.append(1)
            else:
                directionlist.append(-1)
        skelcontext.createNonsequenceableEdgeBoundary(name, seglist,
                                                      directionlist,
                                                      exterior, autoselect=0)