61 lines
No EOL
2 KiB
Text
61 lines
No EOL
2 KiB
Text
### 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. |