Hooked up the rest of the joints. They appear to be working fine. However, I did find a bug in the universal joint. If it hits one of the poles while moving it gets a lot of energy transferred to it and goes crazy.
It appears that the static joint is now working with the code I wrote previously. Fixing the other bugs appears to have fixed this as well.
I tried to make some changes to support torus, but it will not work without a very major change. The problem is that even if I split the torus into to parts it is still a concave shape. Even if I split it smaller it will still be concave. The only way to do add this shape back would be to decompose the torus into a set of small cylinders that forms the circle of the torus. I may do that at some point, but for now it seems like more trouble than it is worth, so I am just going to label torus as being not supported. However, I am leaving some changes I made to the compound shape stuff. I changed the single child collision shape in rigid body to be an array instead. So in the future, if I do need to make a given part up of a number of smaller parts I can do this.
Forgot to add these.
Got rid of all the code sections that were marked as FIX PHYSICS, except those that are not being supported in the initial release (Torus, distance joint, constraint relaxation).

Modified the GUI Torus and distance joint to not show as an option if the physics engine is bullet. Also, got rid of a few params for bullet that should not be modified at the moment.
Added the ability to load/save the physics system for a specific project. Also, added code to allow a user to convert between one physics system and another. I need to expand on this though to make sure that all the parts can be converted. For example, we do not want to try and convert a project that has non-static meshes, or a torus, etc.
Added code to check each dataobject to see if it was okay to convert to the new physics object. If not then it adds to a list of errors that are displayed to the user.
Upgraded to Bullet 2.82, osgbullet 3.0, and osgworks 3.0
1. Fixed a bug in the terrain code from when I switched to using the osgbullet creation method. I had to manually set COM to 0 for terrain and plane types.
2. Had to modify the collision dispatcher for the new version of bullet so collision exclusions would still work.