Friday, June 26, 2009

Convex Decomposition

The Dev has concluded that decomposing complex Shapes into convex shapes, and then tessellating those as needed would be the more elegant and effective solution, so he is now working on the data structures that will be needed by a convex decomposition algorithm.

The benefits of convex decomposition vs triangulation include: fewer output shapes(because each may contain more than 3 vertices) and less likelihood of producing long, thin shapes(which tend to cause problems with physics simulations)

In addition, triangulating convex shapes is trivial and the Dev has already found a suitable paper detailing a convex decomposition algorithm.

Sunday, June 21, 2009


The next step for the Dev is working on is the integration with jBox2D, specifically he will be making all bounds shapes available in jBox2D available to GlassFlame, right now you can only use rectangles.

In the end you will be able to create a bounds for your object using the CAG(the 2D form of CSG) tools in java2D, and then 'draw' this shape into a bounds creation draw target, along with any other draw commands to create a bounding shape.

In order to make this possible two things must happen first: A class must be created which will be able to convert a java2D Shape into a list of triangles, and the drawing system must be redone to handle arbitrary java2D Shapes.

The hardest part will likely be tessellation of the Shapes, and this is what the Dev will work on now.

Monday, June 8, 2009


The mouse event system is coming along well, despite the oddities of LWJGL and AWT. To be specific: AWT refuses to report mouse move/drag events, probably because LWJGL is interfering somehow,but reports all other events fine, LWJGL reports events in such a way that compiling mouse press/release/click events is somewhat tricky, so AWT is used for that. 'On top of all that' LWJGL reports mouse position with 0,0 at the top-left corner of the window, rather then the canvas. Fortunately AWT reports mouse position correctly, so the Dev uses AWT instead.

Power Fail

Do to a power supply failure I was out of commission for a few days.
The Power supply was replaced and the Dev and I are now back to work.