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