Author: EricStein
Date: 2007-07-08 17:55:51 -0400 (Sun, 08 Jul 2007)
New Revision: 431

Modified:
   trunk/pysoy/src/_datatypes/HashTable.pxi
   trunk/pysoy/src/_datatypes/soy._datatypes.pxd
   trunk/pysoy/src/bodies._bodies/Body.pxi
   trunk/pysoy/src/bodies._bodies/soy.bodies._bodies.pxd
Log:
Added remove function, added tags property of Body.  Tested & works.


Modified: trunk/pysoy/src/_datatypes/HashTable.pxi
===================================================================
--- trunk/pysoy/src/_datatypes/HashTable.pxi    2007-07-08 20:56:24 UTC (rev 
430)
+++ trunk/pysoy/src/_datatypes/HashTable.pxi    2007-07-08 21:55:51 UTC (rev 
431)
@@ -58,3 +58,12 @@
   cdef int _has_key(self, char* key) :
     cdef glib.gpointer k, d
     return glib.g_hash_table_lookup_extended(self._hashtable, key, &k, &d)
+  
+  def remove(self, key) :
+    if self._remove(key) :
+      return True
+    else :
+      return False
+
+  cdef int _remove(self, char* key) :
+    return glib.g_hash_table_remove(self._hashtable, key)

Modified: trunk/pysoy/src/_datatypes/soy._datatypes.pxd
===================================================================
--- trunk/pysoy/src/_datatypes/soy._datatypes.pxd       2007-07-08 20:56:24 UTC 
(rev 430)
+++ trunk/pysoy/src/_datatypes/soy._datatypes.pxd       2007-07-08 21:55:51 UTC 
(rev 431)
@@ -52,6 +52,7 @@
   cdef void              _insert(self, char*, float)
   cdef float             _lookup(self, char*)
   cdef int               _has_key(self, char*)
+  cdef int               _remove(self, char*)
 
 
 cdef class FaceList :

Modified: trunk/pysoy/src/bodies._bodies/Body.pxi
===================================================================
--- trunk/pysoy/src/bodies._bodies/Body.pxi     2007-07-08 20:56:24 UTC (rev 
430)
+++ trunk/pysoy/src/bodies._bodies/Body.pxi     2007-07-08 21:55:51 UTC (rev 
431)
@@ -43,6 +43,7 @@
       self.mesh = mesh
     if shape :
       self.shape = shape
+    self._tags = soy._datatypes.HashTable()
 
 
   def __dealloc__(self) :
@@ -92,7 +93,14 @@
         self._destroy()
         self._scene._bodies.unlock()
 
+  property tags :
+    '''Body's tags
 
+       This is the body's tagset.
+    '''
+    def __get__(self) :
+      return self._tags
+
   property mass :
     '''Body's mass
     

Modified: trunk/pysoy/src/bodies._bodies/soy.bodies._bodies.pxd
===================================================================
--- trunk/pysoy/src/bodies._bodies/soy.bodies._bodies.pxd       2007-07-08 
20:56:24 UTC (rev 430)
+++ trunk/pysoy/src/bodies._bodies/soy.bodies._bodies.pxd       2007-07-08 
21:55:51 UTC (rev 431)
@@ -23,26 +23,28 @@
 cimport stdio
 cimport soy._core
 cimport soy._internals
+cimport soy._datatypes
 cimport soy.meshes
 cimport soy.shapes
 
 cdef class Body :
-  cdef ode.dBodyID      _bodyID
-  cdef soy._core.Scene  _scene
-  cdef soy.meshes.Mesh  _mesh
-  cdef soy.shapes.Shape _shape
+  cdef ode.dBodyID              _bodyID
+  cdef soy._core.Scene          _scene
+  cdef soy.meshes.Mesh          _mesh
+  cdef soy.shapes.Shape         _shape
   # for loading/saving
-  cdef ode.dMass        _mass
-  cdef ode.dVector3     _position
-  cdef ode.dQuaternion  _quaternion
-  cdef ode.dReal        _linearVel[3]
-  cdef ode.dReal        _angularVel[3]
+  cdef ode.dMass                _mass
+  cdef ode.dVector3             _position
+  cdef ode.dQuaternion          _quaternion
+  cdef ode.dReal                _linearVel[3]
+  cdef ode.dReal                _angularVel[3]
+  cdef soy._datatypes.HashTable _tags
   # C functions
-  cdef void             _create(self)
-  cdef void             _destroy(self)
-  cdef int              _isActive(self)
-  cdef void             _render(self)
-  cdef void            poke(self, vector)
+  cdef void                     _create(self)
+  cdef void                     _destroy(self)
+  cdef int                      _isActive(self)
+  cdef void                     _render(self)
+  cdef void                    poke(self, vector)
 
 
 cdef class Camera (Body) :

_______________________________________________
PySoy-SVN mailing list
[email protected]
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to