Update of /cvsroot/pyode/pyode/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21509/src
Modified Files:
space.pyx
Log Message:
Added an iterator to iterate over the geoms in a space
Index: space.pyx
===================================================================
RCS file: /cvsroot/pyode/pyode/src/space.pyx,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** space.pyx 15 Nov 2004 20:16:03 -0000 1.5
--- space.pyx 6 Jun 2005 12:50:59 -0000 1.6
***************
*** 20,23 ****
--- 20,44 ----
######################################################################
+ # _SpaceIterator
+ class _SpaceIterator:
+ """Iterates over the geoms inside a Space.
+ """
+
+ def __init__(self, space):
+ self.space = space
+ self.idx = 0
+
+ def __iter__(self):
+ return self
+
+ def next(self):
+ if self.idx>=self.space.getNumGeoms():
+ raise StopIteration
+ else:
+ res = self.space.getGeom(self.idx)
+ self.idx = self.idx+1
+ return res
+
+
# SpaceBase
cdef class SpaceBase(GeomObject):
***************
*** 82,85 ****
--- 103,109 ----
return id
+ def __iter__(self):
+ return _SpaceIterator(self)
+
def add(self, GeomObject geom):
"""add(geom)
***************
*** 163,167 ****
data = <void*>tup
dSpaceCollide(self.sid, data, collide_callback)
!
# Callback function for the dSpaceCollide() call in the Space.collide() method
--- 187,191 ----
data = <void*>tup
dSpaceCollide(self.sid, data, collide_callback)
!
# Callback function for the dSpaceCollide() call in the Space.collide() method
|