Last modified 5 years ago
SceneLoop
where we process physics
SceneLoop is the instance of soy._internals.LoopThread which calls each instance of soy.scenes.Scene to process it's physics in the background. This allows physics to remain real-time regardless of rendering (processed in WindowLoop) or the Python code being processed in the main thread.
To avoid frequent scene locking ODE calls should be isolated to this thread. When ODE calls must exist outside this thread the scene's stepLock() must be called and, with as little processing as possible, that scene object's stepUnlock() should be called. Access to any dBody or dGeom without it's scene's lock will inevitably cause problems for some users.



