On Jan 15, 2008 6:25 AM, jimknopf <[EMAIL PROTECTED]> wrote: > > On 14 Jan., 11:58, "Alex Holkner" <[EMAIL PROTECTED]> wrote: > > > On Jan 14, 2008 9:53 PM, jimknopf <[EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > Hi, > > > > > I am currently playing with PyGlet in combination with Box2d (physics > > > engine). I want to parse SVG like pathes (polygons) for both, Box2D > > > and game graphics. My problem is, that Box2D only accepts convex > > > polygons, which is why I need some kind of simple polygon > > > decomposition / triangulation algorithm. > > > > > As far as I have undestood, GLU offers triangulation using the > > > tesselator module. And PyGlet offers GLU bindings. > > > > > What I tryed: > > > > > points = ([0.0,0.0,0.0],[10.0,0.0,0.0],[0.0,10.0,0.0],) > > > tess = gluNewTess() > > > gluTessBeginPolygon(tess, None) > > > gluTessBeginContour(tess) > > > for point in points: > > > gluTessVertex(tess, point, point) > > > gluTessEndContour() > > > gluTessEndPolygon() > > > > > What Python thinks about my code: > > > > > "[...] > > > Traceback (most recent call last): > > > File "Bezier.py", line 123, in <module> > > > space.main_loop() > > > File "Bezier.py", line 101, in main_loop > > > gluTessVertex(tess, point, point) > > > ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>: > > > expected LP_c_double instance instead of list" > > > > > To be honest, I have not worked with OpenGL before, which is why I do > > > not know, whether this is a PyGlet problem or something else (maybe I > > > simply misundestood the whole Tesselator thingy). But it sounds like a > > > problem with the GLU bindings. > > > > You'll need to construct ctypes arrays to pass to these functions. > > See the ctypes documentation for a good tutorial. For now, this > > should get you started: > > > > import ctypes > > points = ([0.0,0.0,0.0],[10.0,0.0,0.0],[0.0,10.0,0.0],) > > points = [(ctypes.c_double * len(v))(*v) for v in points] > > > > Alex. > > Thanks, worked for me, but am I really supposed to get in contact with > the ctypes module? > > All tutorials/snippets I found seem to base on the OpenGL.GLU > bindings, which take care of stuff like this. So I assume, using > pyglet.gl.glu as complete beginner (concerning GLU) is not the best > option? Because my next problem is, that gluTessCallback() expects a > CFunctionType instance instead of a python function. And after reading > the "Callback Function" section in the ctypes tutorial I still do not > know how to use a python instance method (self.combine or whatever) > together with gluTessCallback(). > > Should I a) take some time to get into the ctypes module, or b) look > for alternatives for polygon decomposition?
You can use PyOpenGL (the OpenGL.GLU bindings) with pyglet; they can be mixed and matched freely (with very few exceptions; you're not near those though). So you could get the GLU tesselation working using PyOpenGL, and later convert those to pyglet.gl.glu if/when you need to. Alex. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en -~----------~----~----~----~------~----~------~--~---
