Author: ArcRiley
Date: 2008-05-15 21:24:46 -0400 (Thu, 15 May 2008)
New Revision: 1259

Modified:
   trunk/pysoy/include/soy._datatypes.pxd
   trunk/pysoy/include/soy.bodies.pxd
   trunk/pysoy/include/soy.models.pxd
   trunk/pysoy/setup.py
   trunk/pysoy/src/_datatypes/FaceList.pym
   trunk/pysoy/src/_datatypes/MaterialList.pym
   trunk/pysoy/src/_datatypes/VertexList.pym
Log:
Ticket #901 :
  * changed the Mesh list datatypes to store _mesh as a Mesh vs void*
  * more forward declairation work - it's starting to get messy
  * setup.py no longer includes every source directory, only includes/


Modified: trunk/pysoy/include/soy._datatypes.pxd
===================================================================
--- trunk/pysoy/include/soy._datatypes.pxd      2008-05-15 23:54:16 UTC (rev 
1258)
+++ trunk/pysoy/include/soy._datatypes.pxd      2008-05-16 01:24:46 UTC (rev 
1259)
@@ -25,6 +25,22 @@
 cimport stdio
 cimport soy._internals
 
+
+##############################################################################
+#  
+# Forward Declarations
+#  
+#######################################
+#  
+# soy.models
+#
+cimport soy.models
+cdef class soy.models.Model
+cdef class soy.models.Mesh   (soy.models.Model)
+#
+##############################################################################
+
+
 cdef :
   struct Face :
     unsigned short a
@@ -76,7 +92,7 @@
 
 
 cdef class MaterialList (Datatype) :
-  cdef void                      *_mesh
+  cdef soy.models.Mesh            _mesh
   cdef soy._internals.Children    _children
   cdef Range                     *_ranges
   cdef int                        _rangesAlloc
@@ -88,7 +104,7 @@
 
 
 cdef class FaceList (Datatype) :
-  cdef void*                      _mesh
+  cdef soy.models.Mesh            _mesh
   cdef soy._internals.Children    _children
   cdef Face*                      _array
   cdef unsigned int*              _arrayList
@@ -106,7 +122,7 @@
 
 
 cdef class VertexList (Datatype) :
-  cdef void*                      _mesh
+  cdef soy.models.Mesh            _mesh
   cdef soy._internals.Children    _children
   cdef Vert*                      _array
   cdef float*                     _fogArray

Modified: trunk/pysoy/include/soy.bodies.pxd
===================================================================
--- trunk/pysoy/include/soy.bodies.pxd  2008-05-15 23:54:16 UTC (rev 1258)
+++ trunk/pysoy/include/soy.bodies.pxd  2008-05-16 01:24:46 UTC (rev 1259)
@@ -18,16 +18,44 @@
 # $Id$
 
 cimport ode
+cimport soy._internals
+
+
+##############################################################################
+#  
+# Forward Declarations
+#
+#######################################
+#
+# soy._datatypes
+#
 cimport soy._datatypes
-cimport soy._internals
+cdef class soy._datatypes.HashTable
+#
+#######################################
+#
+# soy.models
+#
 cimport soy.models
+cdef class soy.models.Model
+#
+#######################################
+#
+# soy.scenes
+#
 cimport soy.scenes
+cdef class soy.scenes.Scene (soy._internals.Loopable)
+#
+#######################################
+#
+# soy.shapes
+#
 cimport soy.shapes
-
-cdef class soy.models.Model
-cdef class soy.scenes.Scene (soy._internals.Loopable)
 cdef class soy.shapes.Shape
+#
+##############################################################################
 
+
 cdef class Body :
   cdef ode.dBodyID              _bodyID
   cdef soy.scenes.Scene         _scene

Modified: trunk/pysoy/include/soy.models.pxd
===================================================================
--- trunk/pysoy/include/soy.models.pxd  2008-05-15 23:54:16 UTC (rev 1258)
+++ trunk/pysoy/include/soy.models.pxd  2008-05-16 01:24:46 UTC (rev 1259)
@@ -22,15 +22,32 @@
 cimport stdio
 cimport soy._datatypes
 cimport soy._internals
-cimport soy.bodies
 cimport soy.materials
 cimport soy.textures
 cimport soy.shapes
 
+##############################################################################
 #  
-# Forward declarations
+# Forward Declarations
 #  
+#######################################
+#  
+# soy._datatypes
+#  
+cimport soy._datatypes
+cdef class soy._datatypes.Datatype
+cdef class soy._datatypes.MaterialList (soy._datatypes.Datatype)
+cdef class soy._datatypes.FaceList     (soy._datatypes.Datatype)
+cdef class soy._datatypes.VertexList   (soy._datatypes.Datatype)
+#  
+#######################################
+#
+# soy.bodies
+#
+cimport soy.bodies
 cdef class soy.bodies.Body
+#
+##############################################################################
 
 
 cdef class Model :

Modified: trunk/pysoy/setup.py
===================================================================
--- trunk/pysoy/setup.py        2008-05-15 23:54:16 UTC (rev 1258)
+++ trunk/pysoy/setup.py        2008-05-16 01:24:46 UTC (rev 1259)
@@ -52,14 +52,15 @@
   'widgets'          : ['GLEW','GL','GLU'], 
 }
 
+
 extensions   =[]
 pyrex_sources=[]
 scripts      =[]
 include_path =['include/']
 for m in modules:
   pyrex_sources.append('src/%s/soy.%s.pyx'%(m,m))
-  include_path.append('src/%s/'%m)
 
+
 ############################################################################
 # Platform-dependent submodules
 

Modified: trunk/pysoy/src/_datatypes/FaceList.pym
===================================================================
--- trunk/pysoy/src/_datatypes/FaceList.pym     2008-05-15 23:54:16 UTC (rev 
1258)
+++ trunk/pysoy/src/_datatypes/FaceList.pym     2008-05-16 01:24:46 UTC (rev 
1259)
@@ -31,7 +31,7 @@
   def __cinit__(self, mesh) :
     if not isinstance(mesh, soy.models.Mesh) :
       raise TypeError('argument must be of type soy.models.Mesh')
-    self._mesh = <void*> mesh
+    self._mesh = mesh
     self._children = soy._internals.Children()
 
 
@@ -57,21 +57,20 @@
     # instance of every face in every mesh - that'd eat way too much memory.
     #
     _found = 0
-    py.PyThread_acquire_lock((<soy.models.Mesh> self._mesh)._mutex, 1)
+    py.PyThread_acquire_lock(self._mesh._mutex, 1)
     if _index < 0 :    
       _index = self._arraySize + _index
     if _index < 0 or _index >= self._arraySize :
-      py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+      py.PyThread_release_lock(self._mesh._mutex)
       raise IndexError('face index out of range')
     for i from 0 <= i < self._children._current :
       if (<soy.atoms.Face> self._children._list[i])._index == _index :
         _face = <soy.atoms.Face> self._children._list[i]
         _found = 1
         break
-    py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+    py.PyThread_release_lock(self._mesh._mutex)
     if not _found :
-      _face = soy.atoms.Face(mesh = <soy.models.Mesh> self._mesh,
-                             index= _index)
+      _face = soy.atoms.Face(mesh = self._mesh, index = _index)
     return _face
 
 
@@ -141,12 +140,10 @@
                             6 * (self._updateRange.length+1),
                             &self._array[self._updateRange.offset])
     self._updateRange.length = 0
-    py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+    py.PyThread_release_lock(self._mesh._mutex)
 
 
   cdef void _allocArray(self, int num) :
-    cdef soy.models.Mesh _mesh
-    _mesh = <soy.models.Mesh> self._mesh
     self._array = <Face*> self._alloc(num, &self._arrayAlloc,
                                        self._array, sizeof(Face))
     self._arrayList = <unsigned int*> self._alloc(num, &self._arrayAlloc,

Modified: trunk/pysoy/src/_datatypes/MaterialList.pym
===================================================================
--- trunk/pysoy/src/_datatypes/MaterialList.pym 2008-05-15 23:54:16 UTC (rev 
1258)
+++ trunk/pysoy/src/_datatypes/MaterialList.pym 2008-05-16 01:24:46 UTC (rev 
1259)
@@ -35,7 +35,7 @@
   def __cinit__(self, mesh) :
     if not isinstance(mesh, soy.models.Mesh) :
       raise TypeError('argument must be of type soy.bodies.Mesh')
-    self._mesh     = <void*> mesh
+    self._mesh     = mesh
     self._children = soy._internals.Children()
     self._ranges   = NULL
     self._hasBumps = 0
@@ -56,12 +56,11 @@
   def __str__(self) :
     cdef int i
     cdef object l
-    cdef soy.models.Mesh _mesh
     l = []
-    py.PyThread_acquire_lock((<soy.models.Mesh> self._mesh)._mutex, 1)
+    py.PyThread_acquire_lock(self._mesh._mutex, 1)
     for i from 0 <= i < self._children._current :
       l.append(<soy.materials.Material> self._children._list[i])
-    py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+    py.PyThread_release_lock(self._mesh._mutex)
     return str(l)
 
 
@@ -71,14 +70,14 @@
 
   def __getitem__(self, _index) :
     cdef soy.materials.Material _mat
-    py.PyThread_acquire_lock((<soy.models.Mesh> self._mesh)._mutex, 1)    
+    py.PyThread_acquire_lock(self._mesh._mutex, 1)    
     if _index < 0 :
       _index = self._children._current + _index
     if _index < 0 or _index >= self._children._current :
-      py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+      py.PyThread_release_lock(self._mesh._mutex)
       raise IndexError('material index out of range')
     _mat = <soy.materials.Material> self._children._list[_index]
-    py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+    py.PyThread_release_lock(self._mesh._mutex)
     return _mat
 
 
@@ -89,20 +88,18 @@
 
   cdef void _render(self, void* body) :
     cdef int             _i
-    cdef soy.models.Mesh _mesh
     if self._children._current == 0 :
       return
-    _mesh = <soy.models.Mesh> self._mesh
 
     if self._hasBumps :
-      _mesh._verts._calculateTSLV(body)
+      self._mesh._verts._calculateTSLV(body)
 
-    if _mesh._faces._buffer == 0 :
-      _mesh._faces._createBuffer()
-      _mesh._verts._createBuffer()
+    if self._mesh._faces._buffer == 0 :
+      self._mesh._faces._createBuffer()
+      self._mesh._verts._createBuffer()
 
-    _mesh._faces._sendUpdated()
-    _mesh._verts._renderBumpPass()
+    self._mesh._faces._sendUpdated()
+    self._mesh._verts._renderBumpPass()
 
     if self._hasBumps :
       self._children._iterStart()
@@ -111,18 +108,18 @@
             self._children._list[_i])._normal :
           (<soy.materials.Material> 
            self._children._list[_i])._coreBindBumpPass()
-          _mesh._faces._render(self._ranges[_i].offset, 
-                               self._ranges[_i].length)
+          self._mesh._faces._render(self._ranges[_i].offset, 
+                                    self._ranges[_i].length)
           (<soy.materials.Material>
            self._children._list[_i])._coreUnBindBumpPass()
       self._children._iterDone()
 
-    _mesh._verts._render()
+    self._mesh._verts._render()
     self._children._iterStart()
     for _i from 0 <= _i < self._children._current :
       (<soy.materials.Material>
        self._children._list[_i])._coreBind()
-      _mesh._faces._render(self._ranges[_i].offset,
+      self._mesh._faces._render(self._ranges[_i].offset,
                                      self._ranges[_i].length)
       (<soy.materials.Material>
        self._children._list[_i])._coreUnBind()

Modified: trunk/pysoy/src/_datatypes/VertexList.pym
===================================================================
--- trunk/pysoy/src/_datatypes/VertexList.pym   2008-05-15 23:54:16 UTC (rev 
1258)
+++ trunk/pysoy/src/_datatypes/VertexList.pym   2008-05-16 01:24:46 UTC (rev 
1259)
@@ -35,7 +35,7 @@
   def __cinit__(self, mesh) :
     if not isinstance(mesh, soy.models.Mesh) :
       raise TypeError('argument must be of type soy.bodies.Mesh')
-    self._mesh        = <void*> mesh
+    self._mesh        = mesh
     self._children    = soy._internals.Children()
     self._bufferAlloc = 0
 
@@ -47,7 +47,6 @@
   def __str__(self) :
     cdef int    _i
     cdef object _l
-    cdef soy.models.Mesh _mesh
     _l = []
     self._children._startIter()
     for _i from 0 <= _i < self._arraySize :
@@ -78,21 +77,20 @@
     # instance of every vertex in every mesh - that'd eat way too much memory.
     #
     _found = 0
-    py.PyThread_acquire_lock((<soy.models.Mesh> self._mesh)._mutex, 1)
+    py.PyThread_acquire_lock(self._mesh._mutex, 1)
     if _index < 0 :
       _index = self._arraySize + _index
     if _index < 0 or _index >= self._arraySize :
-      py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+      py.PyThread_release_lock(self._mesh._mutex)
       raise IndexError('vertex index out of range')
     for i from 0 <= i < self._children._current :
       if (<soy.atoms.Vertex> self._children._list[i])._index == _index :
         _vert = <soy.atoms.Vertex> self._children._list[i]
         _found = 1
         break
-    py.PyThread_release_lock((<soy.models.Mesh> self._mesh)._mutex)
+    py.PyThread_release_lock(self._mesh._mutex)
     if not _found :
-      _vert = soy.atoms.Vertex(mesh = <soy.models.Mesh> self._mesh, 
-                               index= _index)
+      _vert = soy.atoms.Vertex(mesh = self._mesh, index = _index)
     return _vert
 
 
@@ -176,8 +174,6 @@
 
 
   cdef void _allocArray(self, int _num) :
-    cdef soy.models.Mesh _mesh
-    _mesh = <soy.models.Mesh> self._mesh
     self._array = <Vert*> self._alloc(_num, &self._arrayAlloc, 
                                       self._array, sizeof(Vert))
     self._fogArray = <float*> self._alloc(_num, &self._fogSize,

_______________________________________________
PySoy-SVN mailing list
PySoy-SVN@pysoy.org
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to