diff --git a/code/AssimpPCH.h b/code/AssimpPCH.h index e9b02f384..46f1442c3 100644 --- a/code/AssimpPCH.h +++ b/code/AssimpPCH.h @@ -106,16 +106,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # include "../include/BoostWorkaround/boost/scoped_ptr.hpp" # include "../include/BoostWorkaround/boost/format.hpp" -# include "../include/BoostWorkaround/boost/multi_array.hpp" #else -// NOTE: boost::multi_array is nto yet supported by the workaround -#define AI_BUILD_NO_BVH_IMPORTER - # include # include -# include #endif diff --git a/include/aiQuaternion.h b/include/aiQuaternion.h index 7ce4125b0..1079c8751 100644 --- a/include/aiQuaternion.h +++ b/include/aiQuaternion.h @@ -88,7 +88,7 @@ inline aiQuaternion::aiQuaternion( const aiMatrix3x3 &pRotMatrix) float t = 1 + pRotMatrix.a1 + pRotMatrix.b2 + pRotMatrix.c3; // large enough - if( t > 0.00001f) + if( t > 0.001f) { float s = sqrt( t) * 2.0f; x = (pRotMatrix.b3 - pRotMatrix.c2) / s; @@ -98,29 +98,29 @@ inline aiQuaternion::aiQuaternion( const aiMatrix3x3 &pRotMatrix) } // else we have to check several cases else if( pRotMatrix.a1 > pRotMatrix.b2 && pRotMatrix.a1 > pRotMatrix.c3 ) { - // Column 0: + // Column 0: float s = sqrt( 1.0f + pRotMatrix.a1 - pRotMatrix.b2 - pRotMatrix.c3) * 2.0f; - x = -0.25f * s; + x = 0.25f * s; y = (pRotMatrix.a2 + pRotMatrix.b1) / s; z = (pRotMatrix.c1 + pRotMatrix.a3) / s; - w = (pRotMatrix.c2 - pRotMatrix.b3) / s; + w = (pRotMatrix.b3 - pRotMatrix.c2) / s; } else if( pRotMatrix.b2 > pRotMatrix.c3) { - // Column 1: + // Column 1: float s = sqrt( 1.0f + pRotMatrix.b2 - pRotMatrix.a1 - pRotMatrix.c3) * 2.0f; x = (pRotMatrix.a2 + pRotMatrix.b1) / s; - y = -0.25f * s; + y = 0.25f * s; z = (pRotMatrix.b3 + pRotMatrix.c2) / s; - w = (pRotMatrix.a3 - pRotMatrix.c1) / s; + w = (pRotMatrix.c1 - pRotMatrix.a3) / s; } else { - // Column 2: + // Column 2: float s = sqrt( 1.0f + pRotMatrix.c3 - pRotMatrix.a1 - pRotMatrix.b2) * 2.0f; x = (pRotMatrix.c1 + pRotMatrix.a3) / s; y = (pRotMatrix.b3 + pRotMatrix.c2) / s; - z = -0.25f * s; - w = (pRotMatrix.b1 - pRotMatrix.a2) / s; + z = 0.25f * s; + w = (pRotMatrix.a2 - pRotMatrix.b1) / s; } } diff --git a/workspaces/vc8/assimp.vcproj b/workspaces/vc8/assimp.vcproj index fa2d66d53..16494f05c 100644 --- a/workspaces/vc8/assimp.vcproj +++ b/workspaces/vc8/assimp.vcproj @@ -726,10 +726,6 @@ RelativePath="..\..\include\BoostWorkaround\boost\format.hpp" > - - @@ -1724,6 +1720,14 @@ > + + + +