Home | History | Annotate | Download | only in LinearMath

Lines Matching refs:btQuaternion

54 /**@brief The btQuaternion implements quaternion to perform linear algebra rotations in combination with btMatrix3x3, btVector3 and btTransform. */
55 class btQuaternion : public btQuadWord {
58 btQuaternion() {}
62 SIMD_FORCE_INLINE btQuaternion(const btSimdFloat4 vec)
68 SIMD_FORCE_INLINE btQuaternion(const btQuaternion& rhs)
74 SIMD_FORCE_INLINE btQuaternion&
75 operator=(const btQuaternion& v)
87 btQuaternion(const btScalar& _x, const btScalar& _y, const btScalar& _z, const btScalar& _w)
93 btQuaternion(const btVector3& _axis, const btScalar& _angle)
101 btQuaternion(const btScalar& yaw, const btScalar& pitch, const btScalar& roll)
162 SIMD_FORCE_INLINE btQuaternion& operator+=(const btQuaternion& q)
179 btQuaternion& operator-=(const btQuaternion& q)
196 btQuaternion& operator*=(const btScalar& s)
216 btQuaternion& operator*=(const btQuaternion& q)
299 btScalar dot(const btQuaternion& q) const
339 btQuaternion& normalize()
364 SIMD_FORCE_INLINE btQuaternion
371 return btQuaternion(_mm_mul_ps(mVec128, vs));
373 return btQuaternion(vmulq_n_f32(mVec128, s));
375 return btQuaternion(x() * s, y() * s, z() * s, m_floats[3] * s);
381 btQuaternion operator/(const btScalar& s) const
389 btQuaternion& operator/=(const btScalar& s)
396 btQuaternion normalized() const
402 btScalar angle(const btQuaternion& q) const
411 btScalar angleShortestPath(const btQuaternion& q) const
453 btQuaternion inverse() const
456 return btQuaternion(_mm_xor_ps(mVec128, vQInv));
458 return btQuaternion((btSimdFloat4)veorq_s32((int32x4_t)mVec128, (int32x4_t)vQInv));
460 return btQuaternion(-m_floats[0], -m_floats[1], -m_floats[2], m_floats[3]);
466 SIMD_FORCE_INLINE btQuaternion
467 operator+(const btQuaternion& q2) const
470 return btQuaternion(_mm_add_ps(mVec128, q2.mVec128));
472 return btQuaternion(vaddq_f32(mVec128, q2.mVec128));
474 const btQuaternion& q1 = *this;
475 return btQuaternion(q1.x() + q2.x(), q1.y() + q2.y(), q1.z() + q2.z(), q1.m_floats[3] + q2.m_floats[3]);
481 SIMD_FORCE_INLINE btQuaternion
482 operator-(const btQuaternion& q2) const
485 return btQuaternion(_mm_sub_ps(mVec128, q2.mVec128));
487 return btQuaternion(vsubq_f32(mVec128, q2.mVec128));
489 const btQuaternion& q1 = *this;
490 return btQuaternion(q1.x() - q2.x(), q1.y() - q2.y(), q1.z() - q2.z(), q1.m_floats[3] - q2.m_floats[3]);
496 SIMD_FORCE_INLINE btQuaternion operator-() const
499 return btQuaternion(_mm_xor_ps(mVec128, btvMzeroMask));
501 btQuaternion((btSimdFloat4)veorq_s32((int32x4_t)mVec128, (int32x4_t)btvMzeroMask) );
503 const btQuaternion& q2 = *this;
504 return btQuaternion( - q2.x(), - q2.y(), - q2.z(), - q2.m_floats[3]);
508 SIMD_FORCE_INLINE btQuaternion farthest( const btQuaternion& qd) const
510 btQuaternion diff,sum;
519 SIMD_FORCE_INLINE btQuaternion nearest( const btQuaternion& qd) const
521 btQuaternion diff,sum;
534 btQuaternion slerp(const btQuaternion& q, const btScalar& t) const
550 return btQuaternion(
562 static const btQuaternion& getIdentity()
564 static const btQuaternion identityQuat(btScalar(0.),btScalar(0.),btScalar(0.),btScalar(1.));
589 SIMD_FORCE_INLINE btQuaternion
590 operator*(const btQuaternion& q1, const btQuaternion& q2)
621 return btQuaternion(A0);
666 return btQuaternion(A0);
669 return btQuaternion(
677 SIMD_FORCE_INLINE btQuaternion
678 operator*(const btQuaternion& q, const btVector3& w)
704 return btQuaternion(A1);
749 return btQuaternion(A1);
752 return btQuaternion(
760 SIMD_FORCE_INLINE btQuaternion
761 operator*(const btVector3& w, const btQuaternion& q)
787 return btQuaternion(A1);
832 return btQuaternion(A1);
835 return btQuaternion(
845 dot(const btQuaternion& q1, const btQuaternion& q2)
853 length(const btQuaternion& q)
860 btAngle(const btQuaternion& q1, const btQuaternion& q2)
866 SIMD_FORCE_INLINE btQuaternion
867 inverse(const btQuaternion& q)
877 SIMD_FORCE_INLINE btQuaternion
878 slerp(const btQuaternion& q1, const btQuaternion& q2, const btScalar& t)
884 quatRotate(const btQuaternion& rotation, const btVector3& v)
886 btQuaternion q = rotation * v;
897 SIMD_FORCE_INLINE btQuaternion
907 return btQuaternion(n.x(),n.y(),n.z(),0.0f); // just pick any vector that is orthogonal to v0
913 return btQuaternion(c.getX()*rs,c.getY()*rs,c.getZ()*rs,s * 0.5f);
916 SIMD_FORCE_INLINE btQuaternion
938 SIMD_FORCE_INLINE void btQuaternion::serializeFloat(struct btQuaternionFloatData& dataOut) const
945 SIMD_FORCE_INLINE void btQuaternion::deSerializeFloat(const struct btQuaternionFloatData& dataIn)
952 SIMD_FORCE_INLINE void btQuaternion::serializeDouble(struct btQuaternionDoubleData& dataOut) const
959 SIMD_FORCE_INLINE void btQuaternion::deSerializeDouble(const struct btQuaternionDoubleData& dataIn)
966 SIMD_FORCE_INLINE void btQuaternion::serialize(struct btQuaternionData& dataOut) const
973 SIMD_FORCE_INLINE void btQuaternion::deSerialize(const struct btQuaternionData& dataIn)