adam4813/Sigma — pull request #77 by catageek (2013-12-14 16:52:06+00:00)
Title: Model creation

This PR creates a SigmaMotionState class that replaces the DefaultMotionState class of Bullet.

The model has now its own instance outside of Bullet. It is controlled by PhysicalWorldController that now owns the BulletMover instances (currently only one instance for one camera). The model is filled with Bullet bodies through the MotionState.

Since the bullet use double type, and the view use float type, a translation will be made in the model to safely convert double to float without loosing precision. This means that the view transformation will not include a translation since it will be already performed in the model.

This PR use the new model only to update the mover. Other objects are static and the update function must be implemented. In other words, positions are written but never read.

Next steps are to create a UserModelContext class that will hold the data attached to each user (the view limit, the BulletMover instance, etc.) and to create a ViewController class that will make the link between the Model (through PhysicalWorldController) and the OpenGLSystem. this class will certainly own the transformation matrix for all the entities.

This PR contains inline asm specific to some compilers. It has been tested on GCC, it may not work on Visual Studio. It was successfully compiled in 32 bit and 64 bit.