LinearMath source problem

Post Reply
ghadamon
Posts: 1
Joined: Thu Jan 15, 2015 4:38 pm

LinearMath source problem

Post by ghadamon »

Hello, i'm using Bullet 2.82 and, after having some execution errors, i searched in the bullet source code to solve them.
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;
	}
in btQuaternion.h at line 74:

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;
	}
in btQuadWord.h at line 98:

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;
	}
Post Reply