Update to previous discussions, I’ve postponed couple days new Odejava release as I wanted to work with new API.
I wish to make one thing clear before you continue to read this post. When I talk about C API or C++ API, it means actually Java API that is generated from ODE’s C or C++ headers using swig toolkit. So forget C / C++ issues here, users of Javaode see only Java, not C.
Current Javaode API is based on:
-
Java API based on ODE’s C++ headers
-generated by swig tool
-
Java API based on ODE’s C headers
-generated by swig tool
-only few added because C++ is missing few functions
New API consists of:
-
Main API
-not generated (cleaner), made by human
-more ‘Java like’, easier to use
-
Java API based on ODE’s C headers
-generated by swig tool
-one to one with ODE’s own C API
-
Java API based on ODE’s C++ headers
-generated by swig tool
-one to one with ODE’s own C++ API
-this could be deprecated?
I want to include all C headers from ODE as they are the main API on ODE also. ODE’s own documentation and examples are based on C API, not C++ API.
More importantly, the new Odejava API is cleaner and a lot easier to understand on first glance. This higher level API currently uses ODE’s C API directly. It won’t be complete initially, but it’s usage should be easy to extend by adding more functionality with existing C API if needed.
About Odejava’s current priorities:
-
Conform completely into ODE’s C API
-anything that is possible on C should be possible with Java also
-
Offer proper Java API
-most (if not all) functionality is gained through clean Java API
-
Take into consideration other projects
-scenegraph libraries (Xith, jME, OpenMind)
-other similar physic engines made fully with Java
(-3ds / ase readers)
In other words, it should be always possible to do everything with C API directly in case higher level API is not appropriate for some reason.
I’ve made initial Java PE API, but it conforms to ODE very much currently. This higher level API could certainly have it’s comments from other Java physic engine or scenegraph project gurus.
My plan is to release next version this week, so people get to see new API asap.
Opinions?