#ifndef BT_VECTOR3_H
#define BT_VECTOR3_H
#include "btMinMax.h"
#include "btScalar.h"
#ifdef BT_USE_DOUBLE_PRECISION
#define btVector3Data …
#define btVector3DataName …
#else
#define btVector3Data …
#define btVector3DataName …
#endif
namespace VHACD {
ATTRIBUTE_ALIGNED16(class)
btVector3
{ … };
SIMD_FORCE_INLINE btVector3
operator+(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btVector3
operator*(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btVector3
operator-(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btVector3
operator-(const btVector3& v)
{ … }
SIMD_FORCE_INLINE btVector3
operator*(const btVector3& v, const btScalar& s)
{ … }
SIMD_FORCE_INLINE btVector3
operator*(const btScalar& s, const btVector3& v)
{ … }
SIMD_FORCE_INLINE btVector3
operator/(const btVector3& v, const btScalar& s)
{ … }
SIMD_FORCE_INLINE btVector3
operator/(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btScalar
btDot(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btScalar
btDistance2(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btScalar
btDistance(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btScalar
btAngle(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btVector3
btCross(const btVector3& v1, const btVector3& v2)
{ … }
SIMD_FORCE_INLINE btScalar
btTriple(const btVector3& v1, const btVector3& v2, const btVector3& v3)
{ … }
SIMD_FORCE_INLINE btVector3
lerp(const btVector3& v1, const btVector3& v2, const btScalar& t)
{ … }
SIMD_FORCE_INLINE btScalar btVector3::distance2(const btVector3& v) const
{ … }
SIMD_FORCE_INLINE btScalar btVector3::distance(const btVector3& v) const
{ … }
SIMD_FORCE_INLINE btVector3 btVector3::normalized() const
{ … }
SIMD_FORCE_INLINE btVector3 btVector3::rotate(const btVector3& wAxis, const btScalar angle) const
{ … }
class btVector4 : public btVector3 { … };
SIMD_FORCE_INLINE void btSwapScalarEndian(const btScalar& sourceVal, btScalar& destVal)
{ … }
SIMD_FORCE_INLINE void btSwapVector3Endian(const btVector3& sourceVec, btVector3& destVec)
{ … }
SIMD_FORCE_INLINE void btUnSwapVector3Endian(btVector3& vector)
{ … }
template <class T>
SIMD_FORCE_INLINE void btPlaneSpace1(const T& n, T& p, T& q)
{ … }
struct btVector3FloatData { … };
struct btVector3DoubleData { … };
SIMD_FORCE_INLINE void btVector3::serializeFloat(struct btVector3FloatData& dataOut) const
{ … }
SIMD_FORCE_INLINE void btVector3::deSerializeFloat(const struct btVector3FloatData& dataIn)
{ … }
SIMD_FORCE_INLINE void btVector3::serializeDouble(struct btVector3DoubleData& dataOut) const
{ … }
SIMD_FORCE_INLINE void btVector3::deSerializeDouble(const struct btVector3DoubleData& dataIn)
{ … }
SIMD_FORCE_INLINE void btVector3::serialize(struct btVector3Data& dataOut) const
{ … }
SIMD_FORCE_INLINE void btVector3::deSerialize(const struct btVector3Data& dataIn)
{ … }
};
#endif