Some classes have implicit conversion operator btScalar* but operator= is not defined when BT_USE_SSE and BT_USE_NEON are false.
I found the following solution for some source files, but i suggest to check all other files to find similar issues.
in btVector3.h insert the following lines at line 160 (before #endif):
Code: Select all
#else
// Copy constructor
SIMD_FORCE_INLINE btVector3(const btVector3& rhs)
{
m_floats[0] = rhs.m_floats[0];
m_floats[1] = rhs.m_floats[1];
m_floats[2] = rhs.m_floats[2];
}
// Assignment Operator
SIMD_FORCE_INLINE btVector3&
operator=(const btVector3& v)
{
m_floats[0] = v.m_floats[0];
m_floats[1] = v.m_floats[1];
m_floats[2] = v.m_floats[2];
return *this;
}
Code: Select all
#else
SIMD_FORCE_INLINE btQuaternion(const btQuaternion& rhs)
{
m_floats[0] = rhs.m_floats[0];
m_floats[1] = rhs.m_floats[1];
m_floats[2] = rhs.m_floats[2];
m_floats[3] = rhs.m_floats[3];
}
// Assignment Operator
SIMD_FORCE_INLINE btQuaternion&
operator=(const btQuaternion& v)
{
m_floats[0] = v.m_floats[0];
m_floats[1] = v.m_floats[1];
m_floats[2] = v.m_floats[2];
m_floats[3] = v.m_floats[3];
return *this;
}
Code: Select all
#else
// Copy constructor
SIMD_FORCE_INLINE btQuadWord(const btQuadWord& rhs)
{
m_floats[0] = rhs.m_floats[0];
m_floats[1] = rhs.m_floats[1];
m_floats[2] = rhs.m_floats[2];
m_floats[3] = rhs.m_floats[3];
}
// Assignment Operator
SIMD_FORCE_INLINE btQuadWord&
operator=(const btQuadWord& v)
{
m_floats[0] = v.m_floats[0];
m_floats[1] = v.m_floats[1];
m_floats[2] = v.m_floats[2];
m_floats[3] = v.m_floats[3];
return *this;
}