1 #pragma once
2 #include "mathvector.h"
3 #include "quaternion.h"
4 #include "matrix3.h"
5 #include "LinearMath/btVector3.h"
6 #include "LinearMath/btQuaternion.h"
7 #include "LinearMath/btMatrix3x3.h"
8 
ToBulletVector(const MATHVECTOR<float,3> & v)9 inline btVector3 ToBulletVector(const MATHVECTOR<float,3> & v)
10 {
11 	return btVector3(v[0], v[1], v[2]);
12 }
13 
ToBulletQuaternion(const QUATERNION<float> & q)14 inline btQuaternion ToBulletQuaternion(const QUATERNION<float> & q)
15 {
16 	return btQuaternion(q.x(), q.y(), q.z(), q.w());
17 }
18 
ToBulletQuaternion(const QUATERNION<double> & q)19 inline btQuaternion ToBulletQuaternion(const QUATERNION<double> & q)
20 {
21 	return btQuaternion(q.x(), q.y(), q.z(), q.w());
22 }
23 
ToBulletMatrix(const MATRIX3<float> & m)24 inline btMatrix3x3 ToBulletMatrix(const MATRIX3<float> & m)
25 {
26 	return btMatrix3x3(m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8]);
27 }
28 
ToMathVector(const btVector3 & v)29 template <typename T> MATHVECTOR<T,3> ToMathVector(const btVector3 & v)
30 {
31 	return MATHVECTOR<T,3> (v.x(), v.y(), v.z());
32 }
33 
ToMathQuaternion(const btQuaternion & q)34 template <typename T> QUATERNION<T> ToMathQuaternion(const btQuaternion & q)
35 {
36 	return QUATERNION<T> (q.x(), q.y(), q.z(), q.w());
37 }
38