文本文件  |  61行  |  2.01 KB

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