Ejemplo n.º 1
0
class EdgePairsFromWire(object):
    '''
    helper class to loop through a wire and return ordered pairs of edges
    '''
    def __init__(self, wire):
        self.wire = wire
        self.edge_pairs = []
        self.prev_edge = None
        self.we = WireExplorer(self.wire).ordered_edges()
        self.number_of_edges = self.we.__length_hint__()
        self.index = 0

    def next(self):
        if self.index == 0:
            # first edge, need to set self.previous_edge
            self.previous_edge = self.we.next()
            self.current_edge = self.we.next()
            self.first_edge = self.previous_edge   # for the last iteration
            self.index += 1
            return [self.previous_edge, self.current_edge]
        elif self.index == self.number_of_edges-1:
            # no next edge
            self.index += 1
            return [self.current_edge, self.first_edge]
        else:
            self.previous_edge = self.current_edge
            self.current_edge = self.we.next()
            self.index += 1
            return [self.previous_edge, self.current_edge]

    def __iter__(self):
        return self
Ejemplo n.º 2
0
class EdgePairsFromWire(object):
    '''
    helper class to loop through a wire and return ordered pairs of edges
    '''
    def __init__(self, wire):
        self.wire = wire
        self.edge_pairs = []
        self.prev_edge = None
        self.we = WireExplorer(self.wire).ordered_edges()
        self.number_of_edges = self.we.__length_hint__()
        self.index = 0

    def next(self):
        if self.index == 0:
            # first edge, need to set self.previous_edge
            self.previous_edge = self.we.next()
            self.current_edge = self.we.next()
            self.first_edge = self.previous_edge  # for the last iteration
            self.index += 1
            return [self.previous_edge, self.current_edge]

        elif self.index == self.number_of_edges - 1:
            # no next edge
            self.index += 1
            return [self.current_edge, self.first_edge]

        else:
            self.previous_edge = self.current_edge
            self.current_edge = self.we.next()
            self.index += 1
            return [self.previous_edge, self.current_edge]

    def __iter__(self):
        return self