00001 #include "odeutils.h" 00002 00003 void dMatrix3ToOpenGL( float oglMat[ 16 ], const dMatrix3 dMat3 ) 00004 { 00005 oglMat[ 0 ] = dMat3[ 0 ]; 00006 oglMat[ 1 ] = dMat3[ 4 ]; 00007 oglMat[ 2 ] = dMat3[ 8 ]; 00008 oglMat[ 3 ] = 0.0f; 00009 00010 oglMat[ 4 ] = dMat3[ 1 ]; 00011 oglMat[ 5 ] = dMat3[ 5 ]; 00012 oglMat[ 6 ] = dMat3[ 9 ]; 00013 oglMat[ 7 ] = 0.0f; 00014 00015 oglMat[ 8 ] = dMat3[ 2 ]; 00016 oglMat[ 9 ] = dMat3[ 6 ]; 00017 oglMat[ 10 ] = dMat3[ 10 ]; 00018 oglMat[ 11 ] = 0.0f; 00019 00020 oglMat[ 12 ] = 0.0f; 00021 oglMat[ 13 ] = 0.0f; 00022 oglMat[ 14 ] = 0.0f; 00023 oglMat[ 15 ] = 1.0f; 00024 } 00025 00026 void Mat4TodMatrix3( dMatrix3 dmat3, const Mat4 mat4 ) 00027 { 00028 dmat3[ 0 ] = mat4( 0, 0 ); 00029 dmat3[ 1 ] = mat4( 0, 1 ); 00030 dmat3[ 2 ] = mat4( 0, 2 ); 00031 dmat3[ 3 ] = mat4( 0, 3 ); 00032 00033 dmat3[ 4 ] = mat4( 1, 0 ); 00034 dmat3[ 5 ] = mat4( 1, 1 ); 00035 dmat3[ 6 ] = mat4( 1, 2 ); 00036 dmat3[ 7 ] = mat4( 1, 3 ); 00037 00038 dmat3[ 8 ] = mat4( 2, 0 ); 00039 dmat3[ 9 ] = mat4( 2, 1 ); 00040 dmat3[ 10 ] = mat4( 2, 2 ); 00041 dmat3[ 11 ] = mat4( 2, 3 ); 00042 } 00043 00044 void dMatrix3ToMat4( Mat4& mat4, const dMatrix3 dmat3 ) 00045 { 00046 mat4( 0, 0 ) = dmat3[ 0 ]; 00047 mat4( 0, 1 ) = dmat3[ 1 ]; 00048 mat4( 0, 2 ) = dmat3[ 2 ]; 00049 mat4( 0, 3 ) = 0.0; 00050 00051 mat4( 1, 0 ) = dmat3[ 4 ]; 00052 mat4( 1, 1 ) = dmat3[ 5 ]; 00053 mat4( 1, 2 ) = dmat3[ 6 ]; 00054 mat4( 1, 3 ) = 0.0; 00055 00056 mat4( 2, 0 ) = dmat3[ 8 ]; 00057 mat4( 2, 1 ) = dmat3[ 9 ]; 00058 mat4( 2, 2 ) = dmat3[ 10 ]; 00059 mat4( 2, 3 ) = 0.0; 00060 00061 mat4( 3, 0 ) = dmat3[ 12 ]; 00062 mat4( 3, 1 ) = dmat3[ 13 ]; 00063 mat4( 3, 2 ) = dmat3[ 14 ]; 00064 mat4( 3, 3 ) = 1.0; 00065 } 00066 00067 void dMatrix3TodMatrix3( dMatrix3 dmat3_1, const dMatrix3 dmat3_2 ) 00068 { 00069 memcpy( dmat3_1, dmat3_2, sizeof( dMatrix3 ) ); 00070 } 00071 00072 void dRealPtrTodMatrix4( dMatrix4 dmat4, const float* fltPtr ) 00073 { 00074 dmat4[ 0 ] = fltPtr[ 0 ]; 00075 dmat4[ 1 ] = fltPtr[ 1 ]; 00076 dmat4[ 2 ] = fltPtr[ 2 ]; 00077 dmat4[ 3 ] = 0.0f; 00078 00079 dmat4[ 4 ] = fltPtr[ 3 ]; 00080 dmat4[ 5 ] = fltPtr[ 4 ]; 00081 dmat4[ 6 ] = fltPtr[ 5 ]; 00082 dmat4[ 7 ] = 0.0f; 00083 00084 dmat4[ 8 ] = fltPtr[ 6 ]; 00085 dmat4[ 9 ] = fltPtr[ 7 ]; 00086 dmat4[ 10 ] = fltPtr[ 8 ]; 00087 dmat4[ 11 ] = 0.0f; 00088 00089 dmat4[ 12 ] = fltPtr[ 9 ]; 00090 dmat4[ 13 ] = fltPtr[ 10 ]; 00091 dmat4[ 14 ] = fltPtr[ 11 ]; 00092 dmat4[ 15 ] = 0.0f; 00093 } 00094 00095 void dRealPtrTodMatrix3( dMatrix3 dmat3, const float* fltPtr ) 00096 { 00097 dmat3[ 0 ] = fltPtr[ 0 ]; 00098 dmat3[ 1 ] = fltPtr[ 1 ]; 00099 dmat3[ 2 ] = fltPtr[ 2 ]; 00100 dmat3[ 3 ] = fltPtr[ 3 ]; 00101 dmat3[ 4 ] = fltPtr[ 4 ]; 00102 dmat3[ 5 ] = fltPtr[ 5 ]; 00103 dmat3[ 6 ] = fltPtr[ 6 ]; 00104 dmat3[ 7 ] = fltPtr[ 7 ]; 00105 dmat3[ 8 ] = fltPtr[ 8 ]; 00106 dmat3[ 9 ] = fltPtr[ 9 ]; 00107 dmat3[ 10 ] = fltPtr[ 10 ]; 00108 dmat3[ 11 ] = fltPtr[ 11 ]; 00109 } 00110 00111 #if 0 00112 void dRealPtrTodQuaternion( dQuaternion dquat, const float* fltPtr ) 00113 { 00114 dquat[ 0 ] = fltPtr[ 0 ]; 00115 dquat[ 1 ] = fltPtr[ 1 ]; 00116 dquat[ 2 ] = fltPtr[ 2 ]; 00117 dquat[ 3 ] = fltPtr[ 3 ]; 00118 } 00119 00120 void dRealPtrToVec3( Vec3& vec3, const float* fltPtr ) 00121 { 00122 vec3[ 0 ] = fltPtr[ 0 ]; 00123 vec3[ 1 ] = fltPtr[ 1 ]; 00124 vec3[ 2 ] = fltPtr[ 2 ]; 00125 } 00126 #endif