Author: JaroslawTworek
Date: 2008-01-14 00:08:47 +0000 (Mon, 14 Jan 2008)
New Revision: 772
Modified:
trunk/pysoy/src/meshes/Billboard.pxi
trunk/pysoy/src/meshes/soy.meshes.pxd
Log:
Implemented Billboard#size property
Modified: trunk/pysoy/src/meshes/Billboard.pxi
===================================================================
--- trunk/pysoy/src/meshes/Billboard.pxi 2008-01-13 23:52:51 UTC (rev
771)
+++ trunk/pysoy/src/meshes/Billboard.pxi 2008-01-14 00:08:47 UTC (rev
772)
@@ -22,8 +22,10 @@
This mesh rendering quad always facing the camera
'''
- def __cinit__(self, material, *args, **kwargs):
+ def __cinit__(self, material,size=(1,1), *args, **kwargs):
self._material = material
+ self._size[0] = size[0]
+ self._size[1] = size[1]
cdef void _render(self, void* _body):
cdef float mmat[16]
@@ -36,23 +38,34 @@
gl.glBegin(gl.GL_QUADS)
- gl.glVertex3f(mmat[0] - mmat[1] ,
- mmat[4] - mmat[5],
- mmat[8] - mmat[9])
+ gl.glVertex3f( ( mmat[0] * self._size[1] - mmat[1] * self._size[0]) ,
+ ( mmat[4] * self._size[1] - mmat[5] * self._size[0]),
+ ( mmat[8] * self._size[1] - mmat[9] * self._size[0]))
- gl.glVertex3f(mmat[0] + mmat[1] ,
- mmat[4] + mmat[5],
- mmat[8] + mmat[9])
+ gl.glVertex3f( ( mmat[0] * self._size[1] + mmat[1] * self._size[0]) ,
+ ( mmat[4] * self._size[1] + mmat[5] * self._size[0]),
+ ( mmat[8] * self._size[1] + mmat[9] * self._size[0]))
- gl.glVertex3f(-mmat[0] + mmat[1] ,
- -mmat[4] + mmat[5],
- -mmat[8] + mmat[9])
+ gl.glVertex3f( (-mmat[0] * self._size[1] + mmat[1] * self._size[0]) ,
+ (-mmat[4] * self._size[1] + mmat[5] * self._size[0]),
+ (-mmat[8] * self._size[1] + mmat[9] * self._size[0]))
- gl.glVertex3f(-mmat[0] - mmat[1] ,
- -mmat[4] - mmat[5],
- -mmat[8] - mmat[9])
+ gl.glVertex3f( (-mmat[0] * self._size[1] - mmat[1] * self._size[0]) ,
+ (-mmat[4] * self._size[1] - mmat[5] * self._size[0]),
+ (-mmat[8] * self._size[1] - mmat[9] * self._size[0]))
gl.glEnd()
gl.glPopMatrix()
self._material._unbind()
+ property size:
+ '''Billboard.size
+ Specify the size of Billboard in horizontal and vertical direction
+ '''
+ def __get__(self):
+ return (self._size[0], self._size[1])
+ def __set__(self, newsize):
+ self._size[0] = newsize[0]
+ self._size[1] = newsize[1]
+
+
Modified: trunk/pysoy/src/meshes/soy.meshes.pxd
===================================================================
--- trunk/pysoy/src/meshes/soy.meshes.pxd 2008-01-13 23:52:51 UTC (rev
771)
+++ trunk/pysoy/src/meshes/soy.meshes.pxd 2008-01-14 00:08:47 UTC (rev
772)
@@ -44,5 +44,6 @@
cdef class Billboard(Mesh):
cdef soy.materials.Material _material
+ cdef float _size[2]
cdef void _render (self, void* )
_______________________________________________
PySoy-SVN mailing list
[email protected]
http://www.pysoy.org/mailman/listinfo/pysoy-svn