Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2010-01-17 Thread deavid
Ok, I'm testing again all examples.

= summary =
* ode stuff was corrected, except ode-join and ode-mass that might
need some review.
* gui stuff now doesn't give any warning
* particle-1 needs review
* pudding stuff works
* pudding-meter-1 needs to correct its import
* pudding-svgelements-1 is failing to find elementtree library
* raypicking-1,raypicking-3, ode-collision-7-hit_func-3-contacts:
laser class is failing to render.
* sound-1 doesn't work; seems to be a error introduced recently in the svn.
* test keeps failing: no cal3dbody

===


ode-collision-7-hit_func-3-contacts.py - seems to work, but mouse
click don't work (no laser drawed, no effect)
Python2.5 says:
Exception exceptions.TypeError: unsupported operand type(s) for *:
'NoneType' and 'float' in 'soya._soya.PythonCoordSyst._render'
ignored

ode-join.py - acts odd; (this time I've seen something less odd)

ode-mass.py - exits without doing nothing

particle-1.py - works, but python says:  (the animation only happens
one or two secons; it is ok, or it should be a sustained rate of
particles?)
/usr/lib/python2.5/site-packages/soya/particle.py:22:
DeprecationWarning: The content of this module is now in the soya
module.
  warnings.warn(The content of this module is now in the soya
module., DeprecationWarning)

pudding-meter-1.py - fails to import pudding.ext.meter (it works
perfectly when I corrected the import)
Traceback (most recent call last):
  File pudding-meter-1.py, line 10, in module
import pudding.ext.meter
ImportError: No module named pudding.ext.meter

pudding-svgelements-1.py - fails to import svgelements. It says that i
don't have python-elementtree, but Debian's aptitude says it's
installed.
/usr/lib/python2.5/site-packages/soya/pudding/ext/svgelements.py:25:
DeprecationWarning: raising a string exception is deprecated
  raise You need elementtree from http://effbot.org/zone/element-index.htm;
Traceback (most recent call last):
  File pudding-svgelements-1.py, line 8, in module
import soya.pudding.ext.svgelements as svgelements
  File /usr/lib/python2.5/site-packages/soya/pudding/ext/svgelements.py,
line 25, in module
raise You need elementtree from http://effbot.org/zone/element-index.htm;
You need elementtree from http://effbot.org/zone/element-index.htm

raypicking-1, raypicking-3.py -- the laser doesn't render:
Exception exceptions.TypeError: unsupported operand type(s) for *:
'NoneType' and 'float' in 'soya._soya.PythonCoordSyst._render'
ignored

sound-1.py - doesn't work.

sound-1.py:80: DeprecationWarning: the sets module is deprecated
  cube = NoisyCube(scene, cube.Cube().to_model())
AL_INVALID_ENUM
Traceback (most recent call last):
  File sound-1.py, line 102, in module
soya.MainLoop(scene).main_loop()
  File main_loop.pyx, line 181, in soya._soya.MainLoop.main_loop
  File main_loop.pyx, line 272, in soya._soya.MainLoop.advance_time
  File world.pyx, line 584, in soya._soya._World.advance_time
  File sound-1.py, line 68, in advance_time
soya.check_al_error()
  File sound.pyx, line 38, in soya._soya.check_al_error
soya._soya.ALError: AL_INVALID_ENUM

test.py - fails, no atribute cal3dbody

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2010-01-16 Thread Pierre-Yves David
I finally solved my configuration issue and have been able to test All the 
patches 

On 11 janv. 2010, at 18:41, deavid wrote:

 GUI stuff works, [with deprecation warnings]
fixed

 ODE collision 7th demonstration fails when it inits:

fixed

 ode-join.py -- seems to be acting odd.

I agree : added to the tracker

 ode-mass.py -- doesn't seem to do anything (it closes inmediately the window)

I agree : ticket added to the tracker

 particle-1.py -- seems to work (not at all, though), but says:
 /usr/lib/python2.5/site-packages/soya/particle.py:22:
 DeprecationWarning: The content of this module is now in the soya
 module.
  warnings.warn(The content of this module is now in the soya
 module., DeprecationWarning)

Ticket added to the tracker. The tutorial important and comment not some 
rewriting as the particle stuff moved into the main soya module. You also say 
that part of the tutorial are broken. Can you be more specific (The best would 
be adding a test case)


 Pudding stuff won't work:
Fixed

 raypicking-1.py and raypicking3.py -- They fail inside the laser class with 
 this error

Fixed

 and laser won't appear.

Still to be fixed. Point to point laser doesn't appear but point to infinity 
laser works.

 test.py -- fails with the following message:
 Traceback (most recent call last):
  File test.py, line 40, in module
class InterpolatingBody(soya.Cal3dBody):
 AttributeError: 'module' object has no attribute 'Cal3dBody'
 * Soya3D * Quit...

Not fixed.


All those fixes have been pushed in the main svn repo.

I also set up an mercurial mirror here : 
http://bitbucket.org/marmoute/soya-mirror/

--
marmoute
___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2010-01-11 Thread deavid
Pierre,
after compiling your patched version of soya, i tried the unittests,
the log follows:
===
deavid:~/git/soya/soya/test$ ls
dataunittest_geom.py unittest_ode_body.py
unittest_render.py
unittest_categories.py  unittest_gravity.py  unittest_ode_geom.py
unittest_task.py
unittest_events.py  unittest_init.py unittest_ode_gravity.py
unittest_time.py
deavid:~/git/soya/soya/test$ python unittest_categories.py
...
--
Ran 7 tests in 3.245s

OK
deavid:~/git/soya/soya/test$ python unittest_events.py
E
==
ERROR: test_queue_event (__main__.EventsTC)
--
Traceback (most recent call last):
  File unittest_events.py, line 68, in test_queue_event
self.assertIn(DOWN_LEFT, self.main_loop.raw_events)
AttributeError: 'EventsTC' object has no attribute 'assertIn'

--
Ran 9 tests in 1.230s

FAILED (errors=1)
deavid:~/git/soya/soya/test$ python unittest_geom.py
..
--
Ran 2 tests in 0.003s

OK
deavid:~/git/soya/soya/test$ python unittest_gravity.py
..
--
Ran 2 tests in 0.003s

OK
deavid:~/git/soya/soya/test$ python unittest_init.py

--
Ran 4 tests in 1.413s

OK
deavid:~/git/soya/soya/test$ python unittest_ode_body.py

--
Ran 8 tests in 2.815s

OK
deavid:~/git/soya/soya/test$ python unittest_ode_geom.py
..
--
Ran 2 tests in 0.002s

OK
deavid:~/git/soya/soya/test$ python unittest_ode_gravity.py
..
--
Ran 2 tests in 0.003s

OK
deavid:~/git/soya/soya/test$ python unittest_render.py
FF
==
FAIL: test_render_back (__main__.ScreenShotTC)
--
Traceback (most recent call last):
  File unittest_render.py, line 57, in test_render_back
self.assertEquals(screenshot.getpixel((0,0)),(255, 0, 0))
AssertionError: (0, 0, 0) != (255, 0, 0)

==
FAIL: test_render_front (__main__.ScreenShotTC)
--
Traceback (most recent call last):
  File unittest_render.py, line 44, in test_render_front
self.assertEquals(screenshot.getpixel((0,0)),(255, 0, 0))
AssertionError: (0, 0, 0) != (255, 0, 0)

--
Ran 2 tests in 1.367s

FAILED (failures=2)
deavid:~/git/soya/soya/test$ python unittest_task.py
..
--
Ran 2 tests in 0.699s

OK
deavid:~/git/soya/soya/test$ python unittest_time.py
...
--
Ran 3 tests in 1.071s

OK

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2010-01-11 Thread deavid
Trying again all the tutorials, I have seen that all of them are
working, with this exceptions:

GUI stuff works, but says this:
/usr/lib/python2.5/site-packages/soya/gui/widgets.py:276:
DeprecationWarning: process_event is deprecated, use MainLoop's events
attributs instead
  self.process_event(soya.process_event())

ODE collision 7th demonstration fails when it inits:

deavid:~/git/soya/soya/tutorial$ python ode-collision-7-hit_func-3-contacts.py
= Control =
arrows: move
espace: up
left:   down
mouse:  look
clic:   firing laser
right:  clic for stronger single shot
return: center the camera when you're lost
escape: quit
* Soya * Using 8 bits stencil buffer

* Soya * version 0.14
* Using OpenGL 1.5.8 NVIDIA 96.43.13
*   - renderer : GeForce4 MX 440/AGP/SSE2
*   - vendor   : NVIDIA Corporation
*   - maximum number of lights: 8
*   - maximum number of clip planes   : 6
*   - maximum number of texture units : 2
*   - maximum texture size: 2048 pixels

Traceback (most recent call last):
  File ode-collision-7-hit_func-3-contacts.py, line 38, in module
soya.MAIN_LOOP.events
AttributeError: 'NoneType' object has no attribute 'events'
* Soya3D * Quit...


ode-join.py -- seems to be acting odd.

ode-mass.py -- doesn't seem to do anything (it closes inmediately the window)

deavid:~/git/soya/soya/tutorial$ python ode-mass.py
* Soya * Using 8 bits stencil buffer

* Soya * version 0.14
* Using OpenGL 1.5.8 NVIDIA 96.43.13
*   - renderer : GeForce4 MX 440/AGP/SSE2
*   - vendor   : NVIDIA Corporation
*   - maximum number of lights: 8
*   - maximum number of clip planes   : 6
*   - maximum number of texture units : 2
*   - maximum texture size: 2048 pixels

Mass: 50.0
Center of Gravity: (0.0, 5.400953674316, -9.0)
Inertia Tensor: ((511.0, 512.0, 513.0), (512.0, 522.0, 523.0), (513.0,
523.0, 533.0))
* Soya3D * Quit...




particle-1.py -- seems to work (not at all, though), but says:
/usr/lib/python2.5/site-packages/soya/particle.py:22:
DeprecationWarning: The content of this module is now in the soya
module.
  warnings.warn(The content of this module is now in the soya
module., DeprecationWarning)


Pudding stuff won't work:
deavid:~/git/soya/soya/tutorial$ python pudding-console-2.py
* Soya * Using 8 bits stencil buffer

* Soya * version 0.14
* Using OpenGL 1.5.8 NVIDIA 96.43.13
*   - renderer : GeForce4 MX 440/AGP/SSE2
*   - vendor   : NVIDIA Corporation
*   - maximum number of lights: 8
*   - maximum number of clip planes   : 6
*   - maximum number of texture units : 2
*   - maximum texture size: 2048 pixels

* Soya Pudding * Version: 0.1-0
Traceback (most recent call last):
  File pudding-console-2.py, line 52, in module
pudding.main_loop.MainLoop(scene).main_loop()
  File /usr/lib/python2.5/site-packages/soya/pudding/main_loop.py,
line 25, in __init__
self.events = []
AttributeError: attribute 'events' of 'soya._soya.MainLoop' objects is
not writable
* Soya3D * Quit...


raypicking-1.py and raypicking3.py -- They fail inside the laser class
with this error, and laser won't appear.
Exception exceptions.UnboundLocalError: local variable 'direct'
referenced before assignment in 'soya._soya.PythonCoordSyst._render'
ignored


test.py -- fails with the following message:
Traceback (most recent call last):
  File test.py, line 40, in module
class InterpolatingBody(soya.Cal3dBody):
AttributeError: 'module' object has no attribute 'Cal3dBody'
* Soya3D * Quit...


The rest of tutorials are working with the last changes.

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2010-01-11 Thread deavid
I tested again Soya against unitests and againsts tutorials, using a
older pyrex 0.9.7.2, and the effects are exactly the same.

So, in case that there is a difference between pyrex versions, these
would be prior to 0.9.7.2;

soya, when compiled using pyrex 0.9.7.2 and 0.9.8.5 behaves exactly in
the same way. Exactly the same errors.

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-20 Thread deavid
I've created a new GIT repo to handle this better:
http://github.com/deavid/soyamirror

I'll use this to share changes to others; if anyone is interested.

master - will be the clone of the soya's SVN

dev-deavid - my local experimental changes.


I have extracted from there a patch series of 10 patches. I'm
attaching them in .tar.gz


patches.tar.gz
Description: GNU Zip compressed data
___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-18 Thread deavid
Ok, I found the _real_ problem behind terrain collisions. The problem
is, that we're creating a new classgeom*before* ode gets inited.
Because of this, when ode inits it rewrites the callbacks for
collisions, so our changes have no effect.

I'm testing with a special init function (called just after soya starts ODE) :




cdef int dTerrainClass   # global!


cdef void geomterrain_init():
cdef dGeomClass dTerrainGeomClass

dTerrainGeomClass.bytes = 0
dTerrainGeomClass.collider = _TerrainGetColliderFn
dTerrainGeomClass.aabb = _TerrainGetAABB
dTerrainGeomClass.aabb_test = NULL # Need to write this function
dTerrainGeomClass.dtor = NULL   
dTerrainClass = dCreateGeomClass(dTerrainGeomClass)

#dSetColliderOverride(dTerrainClass,0, _TerrainCollide)

print Created new terrain class: %d % dTerrainClass



The problem here is, that my idea works, but pyrex creates wrong C
code. After patching the C code it works.
Pyrex thinks that dTerrainClass inside the function is a Python
Local variable. I've no idea about how to tell pyrex about a global C
variable.

Anyone knows how Pyrex differences between undeclared python objects,
and global C variables? in the same file (geom-terrain.pyx) is a
function that reads the global cdef int dTerrainClass and Pyrex treats
it as a global variable. I don't know why pyrex behaves differently
for my function (is the print call??)

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-18 Thread deavid
Ok, there is a Pyrex global directive to tell the compiler about the
global :-)

Just wrote a patch that works, i'm attaching it.


0007-Corrections-to-ode-terrain-collisions.patch
Description: Binary data
___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-17 Thread Pierre-Yves David
On Thu, Dec 17, 2009 at 12:01:11PM +0100, deavid wrote:
 Hi,
 I'm working very hard to have Soya compiled using latest Pyrex 0.9.8.5

Thank you very much

 At least, these patches will make soya compilable with that version of
 pyrex, but it is not perfect.

That's a great start

 ODE collisions work, when using single precision libraries of ODE.
 
 But it fails in the following tutorials:
 
 ** python tutorial/ode-collision-4-pushable.py  -- FAILS -- returns:
 Exception exceptions.TypeError: 'soya._soya.Contact' object does not
 support item assignment in 'soya._soya.collide_callback' ignored

This work fine with older pyrex version. I hope 

 ** python tutorial/ode-collision-7-hit_func-3-contacts.py -- FAILS -- returns:
   File tutorial/ode-collision-7-hit_func-3-contacts.py, line 38, in module
 soya.MAIN_LOOP.events
 AttributeError: 'NoneType' object has no attribute 'events'

Hum strange. I'll try to investigate this to the end of the week. It's strange
to have code running without MAIN_LOOP defined

 ** python tutorial/ode-collision-8-terrain.py --FAILS-- balls pass
 through terrain.

It should be the same item assignement issue.

 ** python tutorial/ode-collision-9-box.py --FALLS-- objects pass
 through floor. and an error in shell:
 Exception exceptions.TypeError: 'soya._soya.Contact' object does not
 support item assignment in 'soya._soya.collide_callback' ignored

idem

 ** the rest of examples seems to be working

sweet. (but we really need a serious test suite.)

 I will work to have these working too.

Thank you very much again.

--
Pierre-Yves

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-17 Thread deavid
It would be very helpful if someone could apply the patches (at least
the first one) and see what happens.

I tried this on 3 machines (2 Debian, 1 Ubuntu) and the only
difference is in the Ubuntu box, where i don't have a single-precision
version of ODE's libraries.

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-17 Thread deavid
Finally i'have the last patch to make ode collisions with terrains and
non-pushables working.

I'm attaching the patch.

I hope this will be enough to have soya shipped some day compiled with
pyrex 0.9.8.x


terrain-collisions.patch
Description: Binary data
___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-17 Thread Greg Ewing
deavid wrote:

 ODE collisions work, when using single precision libraries of ODE.
 
 But it fails in the following tutorials:

I don't know whether it's related to your problem,
but I've found that trouble can arise if you're
not using the same version of ODE that the code
is expecting. Annoyingly, ODE always installs itself
under the same name by default, despite there being
important differences between versions.

-- 
Greg

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user


Re: [Soya-user] Patches to Soya3D that allow compiling with latest Pyrex

2009-12-17 Thread deavid
2009/12/18 Greg Ewing greg.ew...@canterbury.ac.nz:
 deavid wrote:

 ODE collisions work, when using single precision libraries of ODE.

 But it fails in the following tutorials:

 I don't know whether it's related to your problem,
 but I've found that trouble can arise if you're
 not using the same version of ODE that the code
 is expecting. Annoyingly, ODE always installs itself
 under the same name by default, despite there being
 important differences between versions.

 --

I think it's not a version problem, but I'll check anyway; it's
strange that ode terrain collisions always works when compiled with
pyrex 0.9.6.8 and never with 0.9.7.2 and later (different machines
produce same result).


Pierre, take in account that the last patch submitted DOES NOT solve
the problem at all. It is using a function which is not in the ODE's
documentation to make things work, and only for Terrain VS Spheres.
(the tutorial will work) With a little change it is possible to make
it work with any geom, but the problem is still there.

I have to check if the C file generated by Pyrex is really placing the
function pointer in the struct, because ODE is acting like reading
null from that variable.

anyway, there are several parts of soya that I wish to comment about.

___
Soya-user mailing list
Soya-user@gna.org
https://mail.gna.org/listinfo/soya-user