コード例 #1
0
 def iterator(self):
     for i, outer in enumerate(self.outer.iterator()):
         inner_iterator = self.inner.iterator()
         alternate = False
         if self.snake and i % 2:
             alternate = True
             # Reverse the inner iterator as in place list
             inner_iterator = list(inner_iterator)
             inner_iterator.reverse()
         for inner in inner_iterator:
             point = Point()
             # Insert outer points
             point.positions.update(outer.positions)
             point.lower.update(outer.positions)
             point.upper.update(outer.positions)
             # Insert inner points
             point.positions.update(inner.positions)
             # alternate has lower and upper bound swapped
             if alternate:
                 point.upper.update(inner.lower)
                 point.lower.update(inner.upper)
             else:
                 point.upper.update(inner.upper)
                 point.lower.update(inner.lower)
             # Insert indexes
             point.indexes = outer.indexes + inner.indexes
             yield point
コード例 #2
0
 def iterator(self):
     for i in xrange(self.num):
         point = Point()
         point.positions[self.name] = self._calc(i)
         point.lower[self.name] = self._calc(i - 0.5)
         point.upper[self.name] = self._calc(i + 0.5)
         point.indexes = [i]
         yield point