From: Matthias B. <mb...@us...> - 2004-07-29 20:17:24
|
Update of /cvsroot/pyode/pyode/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18369/src Modified Files: geoms.pyx ode.pyx Added Files: trimesh.pyx trimesh_dummy.pyx Log Message: Trimesh support can now be disabled in the setup script by setting TRIMESH_SUPPORT to False. Index: ode.pyx =================================================================== RCS file: /cvsroot/pyode/pyode/src/ode.pyx,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ode.pyx 19 Jul 2004 14:56:42 -0000 1.5 --- ode.pyx 29 Jul 2004 20:17:13 -0000 1.6 *************** *** 145,148 **** --- 145,152 ---- include "geoms.pyx" + # Include the trimesh switch file that either includes the real trimesh + # wrapper or a dummy wrapper (if trimesh support is not available/desired) + include "_trimesh_switch.pyx" + def collide(geom1, geom2): Index: geoms.pyx =================================================================== RCS file: /cvsroot/pyode/pyode/src/geoms.pyx,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** geoms.pyx 28 Jul 2004 16:03:09 -0000 1.7 --- geoms.pyx 29 Jul 2004 20:17:13 -0000 1.8 *************** *** 665,738 **** - include "trimeshdata.pyx" - - # GeomTriMesh - cdef class GeomTriMesh(GeomObject): - """TriMesh object. - - To construct the trimesh geom you need a TriMeshData object that - stores the actual mesh. This object has to be passed as first - argument to the constructor. - - Constructor:: - - GeomTriMesh(data, space=None) - """ - - # Keep a reference to the data - cdef TriMeshData data - - def __new__(self, TriMeshData data not None, space=None): - cdef Space sp - cdef dSpaceID sid - - self.data = data - - sid=NULL - if space!=None: - sp = space - sid = sp.sid - self.gid = dCreateTriMesh(sid, data.tmdid, NULL, NULL, NULL) - - _geom_c2py_lut[<long>self.gid] = self - - - def __init__(self, TriMeshData data not None, space=None): - self.space = space - self.body = None - - def placeable(self): - return True - - def _id(self): - cdef long id - id = <long>self.gid - return id - - def clearTCCache(self): - """clearTCCache() - - Clears the internal temporal coherence caches. - """ - dGeomTriMeshClearTCCache(self.gid) - - def getTriangle(self, int idx): - """getTriangle(idx) -> (v0, v1, v2) - - @param idx: Triangle index - @type idx: int - """ - - cdef dVector3 v0, v1, v2 - cdef dVector3* vp0 - cdef dVector3* vp1 - cdef dVector3* vp2 - - vp0 = <dVector3*>v0 - vp1 = <dVector3*>v1 - vp2 = <dVector3*>v2 - - dGeomTriMeshGetTriangle(self.gid, idx, vp0, vp1, vp2) - return ((v0[0],v0[1],v0[2]), (v1[0],v1[1],v1[2]), (v2[0],v2[1],v2[2])) - - --- 665,666 ---- --- NEW FILE: trimesh_dummy.pyx --- # Trimesh dummy classes. # These classes are included by the file _trimesh_switch.pyx if the # variable TRIMESH_SUPPORT was set to False in the setup script. cdef class TriMeshData: """This class stores the mesh data. This is only a dummy class that's used when trimesh support was disabled. """ def __init__(self): raise NotImplementedError, "Trimesh support is disabled" cdef class GeomTriMesh(GeomObject): """Trimesh object. This is only a dummy class that's used when trimesh support was disabled. """ def __init__(self, TriMeshData data not None, space=None): raise NotImplementedError, "Trimesh support is disabled" --- NEW FILE: trimesh.pyx --- # Trimesh # GeomTriMesh cdef class GeomTriMesh(GeomObject): """TriMesh object. To construct the trimesh geom you need a TriMeshData object that stores the actual mesh. This object has to be passed as first argument to the constructor. Constructor:: GeomTriMesh(data, space=None) """ # Keep a reference to the data cdef TriMeshData data def __new__(self, TriMeshData data not None, space=None): cdef Space sp cdef dSpaceID sid self.data = data sid=NULL if space!=None: sp = space sid = sp.sid self.gid = dCreateTriMesh(sid, data.tmdid, NULL, NULL, NULL) _geom_c2py_lut[<long>self.gid] = self def __init__(self, TriMeshData data not None, space=None): self.space = space self.body = None def placeable(self): return True def _id(self): cdef long id id = <long>self.gid return id def clearTCCache(self): """clearTCCache() Clears the internal temporal coherence caches. """ dGeomTriMeshClearTCCache(self.gid) def getTriangle(self, int idx): """getTriangle(idx) -> (v0, v1, v2) @param idx: Triangle index @type idx: int """ cdef dVector3 v0, v1, v2 cdef dVector3* vp0 cdef dVector3* vp1 cdef dVector3* vp2 vp0 = <dVector3*>v0 vp1 = <dVector3*>v1 vp2 = <dVector3*>v2 dGeomTriMeshGetTriangle(self.gid, idx, vp0, vp1, vp2) return ((v0[0],v0[1],v0[2]), (v1[0],v1[1],v1[2]), (v2[0],v2[1],v2[2])) |