### 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.