### Library integration
- Build on all platforms (update SwigBulletBuild)
- Complete gdxVoidPointer.i and enable it in gdxBullet.i
### Features not yet finished:
- Generate soft body, gimpact types
Also update the btCollisionShape downcast switch block to include these
- Handle "CUSTOM" btCollisionShape downcasts
- Test perf around largish types crossing boundaries often
Vector3, Matrix4, and Quaternion should be pretty efficient. Their
floats are directly accessed in JNI.
- Enable and fix vehicle class generation
They're the only ones I left disabled because of some C++ compile
issues I didn't care to fix at the time.
- Break into modules
Collision and dynamics types in separate libraries? The generated
wrappers are currently huge because they include everything.
Maybe disable lesser used features (some shapes? serialization?).
### Ongoing Maintenance
- Add new classes to gdxBullet.i in that big section near the bottom
These are the "simple" classes. We'll need to add new ones when
they appera in Bullet, remove them when they disappear.
- Add new files to "custom" for types with inner classes / structs
Some classes have inner types that are really useful and they
need those types declared in .i files. When they change, we'll
need to update the class declarations.
We can ignore inner types that won't be useful to gdx users.
- Write more type substitutions like for Vector3, Matrix3, Quaternion
These make it more pleasant to use Bullet with GDX, and should
help with performance (fewer bytes copied).
- Add efficient helper methods to Bullet classes
SWIG can "add" methods to C++ classes when it generates wrappers.
This powerful feature can be used to add non-allocating methods to
classes that would otherwise return a reference or pointer that SWIG
would wrap with a new Java object (an allocation).
Examples:
- custom/btCollisionObject.i "getWorldTransform(btTransform & out)"
and friends provide allocation-free means to get/set collision
object properties.