From: Matthias B. <mb...@us...> - 2004-07-28 07:27:19
|
Update of /cvsroot/pyode/pyode/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23647/src Modified Files: geoms.pyx Log Message: Check the geom argument to setGeom() Index: geoms.pyx =================================================================== RCS file: /cvsroot/pyode/pyode/src/geoms.pyx,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** geoms.pyx 27 Jul 2004 15:19:03 -0000 1.5 --- geoms.pyx 28 Jul 2004 07:27:09 -0000 1.6 *************** *** 557,568 **** return id ! def setGeom(self, geom): """setGeom(geom) ! Set the geom that the geometry transform encapsulates. The geom must ! not be inserted into any space, and must not be associated with any ! body. """ cdef long id id = geom._id() --- 557,579 ---- return id ! def setGeom(self, GeomObject geom not None): """setGeom(geom) ! Set the geom that the geometry transform encapsulates. ! A ValueError exception is thrown if a) the geom is not placeable, ! b) the geom was already inserted into a space or c) the geom is ! already associated with a body. ! ! @param geom: Geom object to encapsulate ! @type geom: GeomObject """ cdef long id + + if not geom.placeable(): + raise ValueError, "Only placeable geoms can be encapsulated by a GeomTransform" + if dGeomGetSpace(geom.gid)!=<dSpaceID>0: + raise ValueError, "The encapsulated geom was already inserted into a space." + if dGeomGetBody(geom.gid)!=<dBodyID>0: + raise ValueError, "The encapsulated geom is already associated with a body." id = geom._id() *************** *** 592,595 **** --- 603,608 ---- @type mode: int """ + if mode<0 or mode>1: + raise ValueError, "Invalid information mode (%d). Must be either 0 or 1."%mode dGeomTransformSetInfo(self.gid, mode) |