Might it be possable to use something like Ephedra, C[++]2J or Java backend for GCC to do this? I know none of these are new, or that activly maintined, but it might be worth a shot.
this looks like the best path IMHO.
currently we have to do a bit of work keeping odejava up to date with the C library (this is done automatically by swig). Replacing that automated process with another one would be fine…
As ODE thankfully doesn’t use GUI api’s, a port of this nature seems feasable.
Certainly more maintanable than hand-porting it.
WIll.
Using Swig is easy and I don’t assume we get too big of trouble even if ODE changes a lot.
Swig leaves all native oddities to native side, it just builds an window to native side (simpler). So Swig only handles with API, not C internals. However, the path with native source=>Java source must be a lot more complex as here the task is not only API related, you are now trying to convert pure native source code into something else. I’d say there’s bound to be many complex issues that need to be solved manually. The task sounds a bit too bold
The tools listed previously (native C => Java code) is a no go (IMHO), this is because ODE is full of specific native tweaks (e.g. lot’s of pointer arithmetic, the source code is complex, native optimization decisions). Hence, nothing too great cannot be coming out from automatic conversion of such source code into Java.
Even if you get tool X to convert 80% of ODE into Java source code, then what? Probably you are missing the most complex parts of conversion, this is where the work lies. Building 80% ready physics engine with Java from ground up is not big task, it’s the collision and other physics math parts that need lot’s of work.
It all depends what the magic tool X spits out. I’d say it’s hard to get it even to convert it fully, let alone to comprehend the converted Java source.
Last, I’ll throw out an disclaimer… All my comments are plain hunches, I haven’t tryed tools like Ephedra myself and I do not know much about projects like Java backend for GCC.
I’d personally select creating Java physics engine from ground up. New design without any ties to existing projects. I’d use ODE perhaps as an example (algorithms, ideas), not much more.