Plus and Minus a Few Tasks

Well, instead of working through my list of things to complete and making the list smaller, I actually made the list longer.

I've decided to add two new Joint types and implement a "softness" factor on all the Joints. The two knew joints are Pin Joint (keeps to anchor points of two different bodies at a constant distance apart) and a Slider Joint (similar to the pin joint, but the anchors are allowed to move as long as they dont' go beyond some max distance)

I got the idea for the new Joints and some of the code from the Chipmunk Dynamics open source engine.  It's a very cool "C" engine derived, like Farseer, from Erin Cattos Box2D engine.

Side note, there is a project on CodePlex to port Chipmunk to XNA.  It seems to be just getting started but should be a nice when it's completed.

So, where am I at with my task list. Well it now look like this:(strike thru means the item is complete)

  1. Limited Angle Joint (Joint limits for the RevoluteJoint)
  2. Pin Joint with softness (60% complete)
  3. Slider Joint with softness
  4. Max Contacts To Detect, Max Contacts To Resolve, Resolve Deepest First (just some ideas I have about handling contacts)
  5. Rewrite/Cleanup Collide method
    • Replace collide event with callback/boolean return value (will allow the application to essentially cancel a collision)
  6. Factory Objects
    • Make static classes
    • Overload as follows (If the simulator is passed in the object will automatically be added to the simulator prior to being returned. Just as a convenience)
      • Method(x, y, z)
      • Method(simulator, x, y, z)
  7. Breakable Joints and Springs
  8. Queue-up Added and Removed items and remove them when it's safe to do so.
  9. Joint API (just some general clean-up of the Joint objects)
  10. User Data Object
  11. General code clean-up
  12. Docs!
  13. New LOGO! 
  14. Website (bare-bones for now)
  15. RELEASE!!!!!!!
  16. Move on to my ultimate goal: Make some cool physics based games.