Main Page | Namespace List | Class List | File List | Class Members | File Members

odeutils.cpp

Go to the documentation of this file.
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

Generated on Sat Mar 13 14:58:32 2004 for Ars Physica by doxygen 1.3.5