- It has its own collision dispatcher.
- It has its own broad phase.
- It has its own constraint solver.
- It has its own discrete dynamics world.
- And it allocates all these things, and cleans them up in a nice, neat, correct, encapsulated and object-oriented manner.
So how is it that when I declare two independent classes stored completely in different locations in memory, that the various simulations interact with each other in strange ways? If I initialize the physics in one of them, the other one does not operate. If I try to delete the first one, and create the second one thereafter, the second one crashes with an AABB out-of-bounds error. The location of several of the bodies in the sim comes back as a NaN value (-1.#QNAN00000) , after calling ::stepSimulation() only once. I can easily re-create all these errors, at will, for anyone who so desires to see such.
If I were to start over from scratch, and re-write the entire class myself (starting from the Helloworld example from the wiki), this is exactly what I would have already done.
So my question stands. Why is there cross-talk? How is there cross-talk? What is hidden in this bullet header files that is making global data that is clashing between invocations of these simulations?
It's a simple question.
Code: Select all
http://i.imgur.com/r5fl9Xr.png
http://i.imgur.com/ls8LUrk.png