use __int64 for 64bit uint64_t for 64bit Visual Studio
See https://code.google.com/p/bullet/issues/detail?id=717 allow parallel constraint solver in double precision See https://code.google.com/p/bullet/issues/detail?id=728
This commit is contained in:
@@ -214,9 +214,13 @@ IF(MSVC)
|
|||||||
ENDFOREACH(flag_var)
|
ENDFOREACH(flag_var)
|
||||||
ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
||||||
|
|
||||||
OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)
|
IF (CMAKE_CL_64)
|
||||||
IF (USE_MSVC_SSE)
|
ADD_DEFINITIONS(-D_WIN64)
|
||||||
|
ELSE()
|
||||||
|
OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)
|
||||||
|
IF (USE_MSVC_SSE)
|
||||||
ADD_DEFINITIONS(/arch:SSE)
|
ADD_DEFINITIONS(/arch:SSE)
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
|
OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
|
||||||
IF (USE_MSVC_FAST_FLOATINGPOINT)
|
IF (USE_MSVC_FAST_FLOATINGPOINT)
|
||||||
|
|||||||
@@ -44,9 +44,13 @@ IF(MSVC)
|
|||||||
ENDFOREACH(flag_var)
|
ENDFOREACH(flag_var)
|
||||||
ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
|
||||||
|
|
||||||
OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)
|
IF (CMAKE_CL_64)
|
||||||
IF (USE_MSVC_SSE)
|
ADD_DEFINITIONS(-D_WIN64)
|
||||||
|
ELSE()
|
||||||
|
OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON)
|
||||||
|
IF (USE_MSVC_SSE)
|
||||||
ADD_DEFINITIONS(/arch:SSE)
|
ADD_DEFINITIONS(/arch:SSE)
|
||||||
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
|
OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON)
|
||||||
IF (USE_MSVC_FAST_FLOATINGPOINT)
|
IF (USE_MSVC_FAST_FLOATINGPOINT)
|
||||||
|
|||||||
@@ -38,7 +38,11 @@ typedef union
|
|||||||
#ifndef __PHYSICS_COMMON_H__
|
#ifndef __PHYSICS_COMMON_H__
|
||||||
#ifndef PFX_USE_FREE_VECTORMATH
|
#ifndef PFX_USE_FREE_VECTORMATH
|
||||||
#ifndef __BT_SKIP_UINT64_H
|
#ifndef __BT_SKIP_UINT64_H
|
||||||
|
#if defined(_WIN64) && defined(_MSC_VER)
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
#else
|
||||||
typedef unsigned long int uint64_t;
|
typedef unsigned long int uint64_t;
|
||||||
|
#endif
|
||||||
#endif //__BT_SKIP_UINT64_H
|
#endif //__BT_SKIP_UINT64_H
|
||||||
#endif //PFX_USE_FREE_VECTORMATH
|
#endif //PFX_USE_FREE_VECTORMATH
|
||||||
typedef unsigned int uint32_t;
|
typedef unsigned int uint32_t;
|
||||||
|
|||||||
@@ -1217,8 +1217,8 @@ btScalar btParallelConstraintSolver::solveGroup(btCollisionObject** bodies1,int
|
|||||||
btVector3 angVelPlusForces = rb->getAngularVelocity()+rb->getTotalTorque()*rb->getInvInertiaTensorWorld()*infoGlobal.m_timeStep;
|
btVector3 angVelPlusForces = rb->getAngularVelocity()+rb->getTotalTorque()*rb->getInvInertiaTensorWorld()*infoGlobal.m_timeStep;
|
||||||
btVector3 linVelPlusForces = rb->getLinearVelocity()+rb->getTotalForce()*rb->getInvMass()*infoGlobal.m_timeStep;
|
btVector3 linVelPlusForces = rb->getLinearVelocity()+rb->getTotalForce()*rb->getInvMass()*infoGlobal.m_timeStep;
|
||||||
|
|
||||||
state.setAngularVelocity((const vmVector3&)angVelPlusForces);
|
state.setAngularVelocity(btReadVector3(angVelPlusForces));
|
||||||
state.setLinearVelocity((const vmVector3&) linVelPlusForces);
|
state.setLinearVelocity(btReadVector3(linVelPlusForces));
|
||||||
|
|
||||||
state.setMotionType(PfxMotionTypeActive);
|
state.setMotionType(PfxMotionTypeActive);
|
||||||
vmMatrix3 ori(solverBody.mOrientation);
|
vmMatrix3 ori(solverBody.mOrientation);
|
||||||
|
|||||||
Reference in New Issue
Block a user