But, when it builds there are tons of warnings (many are duplicates) where double precision btScalar is being assigned to float variables. This is a implied loss of precision.
Several questions:
Most importantly...
1.) Our world is essentially infinite and all world coordinates are double precision in meters. These conversion to float, will they truncate our values?
Secondary...
2.) Does the bullet library get built and tested with a double precision setting very often?
3.) If I was to go through and check every single conversion and try to think wether it is ok or not, and fix it, what does it take to get qualified to check code into the subversion repository?
What appears to have happened is that bullet was written with btScalar to allow for float vs. double but later add-ons did not take that into account and assumed float.
Here are some random cut-n-pastes from the warnings...
Code: Select all
1>c:\bullet-2.79\src\bulletcollision\collisionshapes\bttriangleinfomap.h(125): warning C4244: '=' : conversion from 'const btScalar' to 'float', possible loss of data
1>c:\bullet-2.79\src\bulletdynamics\constraintsolver\btgeneric6dofspringconstraint.h(88): warning C4244: '=' : conversion from 'const btScalar' to 'float', possible loss of data
1>c:\bullet-2.79\src\linearmath\btserializer.h(406): warning C4127: conditional expression is constant
Also when I build the libraries I get way more warnings. The above is only via the header files into my application.
R. Keene - CTO Sandswept Studios
http://www.thedeadlinger.com