#include <TAPsMatrix4x4.hpp>

Public Member Functions | |
| const double * | GetDataDouble () const |
| const float * | GetDataFloat () const |
| const long double * | GetDataLongDouble () const |
| T | GetDeterminant () const |
| Matrix4x4< T > | GetInverse () const |
| Matrix3x3< T > | GetMatrix3x3 () const |
| Matrix4x4< T > | GetTranspose () const |
| const double * | GetTransposeDataDouble () const |
| const float * | GetTransposeDataFloat () const |
| const long double * | GetTransposeDataLongDouble () const |
| Matrix4x4< T > & | Inversed () |
| bool | IsIdentity () const |
| bool | IsSquare () const |
| bool | IsSymmetric () const |
| void | MakeDiagonal (T const af[4]) |
| void | MakeDiagonal (T d) |
| void | MakeIdentity () |
| void | MakeZero () |
| Matrix4x4 (Vector4< T > const &V) | |
| Matrix4x4 (Vector3< T > const &V) | |
| Matrix4x4 (Matrix3x3< T > const &M) | |
| Matrix4x4 (T const af[16]) | |
| Matrix4x4 (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) | |
| Matrix4x4 (T) | |
| Matrix4x4 (Matrix4x4< T > const &M) | |
| Matrix4x4 () | |
| void | MultLeft (Matrix4x4< T > const &M) |
| void | MultRight (Matrix4x4< T > const &M) |
| operator const T * () const | |
| operator T * () | |
| T const & | operator() (int r, int c) const |
| T & | operator() (int r, int c) |
| Vector4< T > | operator* (Vector4< T > const &V) const |
| Matrix4x4< T > | operator* (T s) const |
| Matrix4x4< T > | operator* (Matrix4x4< T > const &M) const |
| Matrix4x4< T > & | operator*= (T s) |
| Matrix4x4< T > & | operator*= (Matrix4x4< T > const &M) |
| Matrix4x4< T > | operator+ (Matrix4x4< T > const &M) const |
| Matrix4x4< T > & | operator+= (Matrix4x4< T > const &M) |
| Matrix4x4< T > | operator- (Matrix4x4< T > const &M) const |
| Matrix4x4< T > | operator- () |
| Matrix4x4< T > & | operator-= (Matrix4x4< T > const &M) |
| Matrix4x4< T > | operator/ (T s) const |
| Matrix4x4< T > & | operator/= (T s) |
| Matrix4x4< T > & | operator= (Matrix4x4 const &M) |
| T const & | operator[] (int i) const |
| T & | operator[] (int i) |
| void | SetAllElements (T const af[16]) |
| void | SetAllElements (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T, T) |
| void | SetAllElements (T) |
| Matrix4x4< T > & | Transposed () |
| ~Matrix4x4 () | |
Static Public Member Functions | |
| static Matrix4x4< T > | CreateRotation (Vector3< T > const &V, T const angle) |
Private Attributes | |
| T | e [16] |
Static Private Attributes | |
| static double | g_d [16] |
| static float | g_f [16] |
| static long double | g_ld [16] |
Friends | |
| Matrix4x4< T > | operator* (T s, Matrix4x4< T > const &M) |
| std::ostream & | operator<< (std::ostream &output, Matrix4x4< T > const &M) |
Definition at line 24 of file TAPsMatrix4x4.hpp.
Definition at line 26 of file TAPsMatrix4x4.cpp.
00027 { 00028 // Identity Matrix 00029 /*e0*/ e[ 1] = e[ 2] = e[ 3] = 00030 e[ 4] = /*e5*/ e[ 6] = e[ 7] = 00031 e[ 8] = e[ 9] /*e10*/ = e[11] = 00032 e[12] = e[13] = e[14] /*e15*/= Math<T>::ZERO; 00033 e[ 0] = e[ 5] = e[10] = e[15] = Math<T>::ONE; 00034 }
Definition at line 37 of file TAPsMatrix4x4.cpp.
00038 { 00039 e[ 0] = M.e[ 0]; e[ 1] = M.e[ 1]; e[ 2] = M.e[ 2]; e[ 3] = M.e[ 3]; 00040 e[ 4] = M.e[ 4]; e[ 5] = M.e[ 5]; e[ 6] = M.e[ 6]; e[ 7] = M.e[ 7]; 00041 e[ 8] = M.e[ 8]; e[ 9] = M.e[ 9]; e[10] = M.e[10]; e[11] = M.e[11]; 00042 e[12] = M.e[12]; e[13] = M.e[13]; e[14] = M.e[14]; e[15] = M.e[15]; 00043 }
Definition at line 67 of file TAPsMatrix4x4.cpp.
00068 { 00069 e[ 0] = af[ 0]; e[ 1] = af[ 1]; e[ 2] = af[ 2]; e[ 3] = af[ 3]; 00070 e[ 4] = af[ 4]; e[ 5] = af[ 5]; e[ 6] = af[ 6]; e[ 7] = af[ 7]; 00071 e[ 8] = af[ 8]; e[ 9] = af[ 9]; e[10] = af[10]; e[11] = af[11]; 00072 e[12] = af[12]; e[13] = af[13]; e[14] = af[14]; e[15] = af[15]; 00073 }
| Matrix4x4< T > Matrix4x4< T >::CreateRotation | ( | Vector3< T > const & | V, | |
| T const | angle | |||
| ) | [inline, static] |
Definition at line 478 of file TAPsMatrix4x4.cpp.
00479 { 00480 assert( V.Length() ); // Vector must not be zero 00481 Matrix4x4<T> mRotation; 00482 Vector3<T> axis = V.GetUnit(); 00483 T x = axis[0], y = axis[1], z = axis[2]; 00484 T xx = x*x, yy = y*y, zz = z*z; 00485 T xy = x*y, yz = y*z, zx = x*z; 00486 //---------------------------------------------------------------- 00487 mRotation( 0, 0 ) = xx + cos(angle)*(1 - xx); 00488 mRotation( 0, 1 ) = xy*(1 - cos(angle)) - z*sin(angle); 00489 mRotation( 0, 2 ) = zx*(1 - cos(angle)) + y*sin(angle); 00490 //---------------------------------------------------------------- 00491 mRotation( 1, 0 ) = xy*(1 - cos(angle)) + z*sin(angle); 00492 mRotation( 1, 1 ) = yy + cos(angle)*(1 - yy); 00493 mRotation( 1, 2 ) = yz*(1 - cos(angle)) - x*sin(angle); 00494 //---------------------------------------------------------------- 00495 mRotation( 2, 0 ) = zx*(1 - cos(angle)) - y*sin(angle); 00496 mRotation( 2, 1 ) = yz*(1 - cos(angle)) + x*sin(angle); 00497 mRotation( 2, 2 ) = zz + cos(angle)*(1 - zz); 00498 //---------------------------------------------------------------- 00499 return mRotation; 00500 }
| const double * Matrix4x4< T >::GetDataDouble | ( | ) | const [inline] |
Definition at line 529 of file TAPsMatrix4x4.cpp.
00530 { 00531 for ( int i = 0; i < 16; ++i ) { 00532 g_d[i] = static_cast<double>( e[i] ); 00533 } 00534 return g_d; 00535 }
| const float * Matrix4x4< T >::GetDataFloat | ( | ) | const [inline] |
Definition at line 520 of file TAPsMatrix4x4.cpp.
00521 { 00522 for ( int i = 0; i < 16; ++i ) { 00523 g_f[i] = static_cast<float>( e[i] ); 00524 } 00525 return g_f; 00526 }
| const long double * Matrix4x4< T >::GetDataLongDouble | ( | ) | const [inline] |
Definition at line 538 of file TAPsMatrix4x4.cpp.
00539 { 00540 for ( int i = 0; i < 16; ++i ) { 00541 g_ld[i] = static_cast<long double>( e[i] ); 00542 } 00543 return g_ld; 00544 }
| T Matrix4x4< T >::GetDeterminant | ( | ) | const [inline] |
Definition at line 301 of file TAPsMatrix4x4.cpp.
00302 { 00303 return e[ 0] * ( e[ 5]*e[10]*e[15] - e[ 5]*e[11]*e[14] - e[ 9]*e[ 6]*e[15] + e[ 9]*e[ 7]*e[14] + e[13]*e[ 6]*e[11] - e[13]*e[ 7]*e[10] ) 00304 + e[ 4] * ( e[ 1]*e[11]*e[14] - e[ 1]*e[10]*e[15] + e[ 9]*e[ 2]*e[15] - e[ 9]*e[ 3]*e[14] - e[13]*e[ 2]*e[11] + e[13]*e[ 3]*e[10] ) 00305 + e[ 8] * ( e[ 1]*e[ 6]*e[15] - e[ 1]*e[ 7]*e[14] - e[ 5]*e[ 2]*e[15] + e[ 5]*e[ 3]*e[14] + e[13]*e[ 2]*e[ 7] - e[13]*e[ 3]*e[ 6] ) 00306 + e[12] * ( e[ 1]*e[ 7]*e[10] - e[ 1]*e[ 6]*e[11] + e[ 5]*e[ 2]*e[11] - e[ 5]*e[ 3]*e[10] - e[ 9]*e[ 2]*e[ 7] + e[ 9]*e[ 3]*e[ 6] ); 00307 }
Definition at line 270 of file TAPsMatrix4x4.cpp.
00271 { 00272 T det = GetDeterminant(); 00273 00274 if ( -Math<T>::EPSILON < det && det < Math<T>::EPSILON ) 00275 return Matrix4x4( Math<T>::INFINITY ); 00276 00277 return Matrix4x4<T>( 00278 ( e[ 5]*e[10]*e[15] - e[ 5]*e[11]*e[14] - e[ 9]*e[ 6]*e[15] + e[ 9]*e[ 7]*e[14] + e[13]*e[ 6]*e[11] - e[13]*e[ 7]*e[10] ) / det, 00279 ( e[ 1]*e[11]*e[14] - e[ 1]*e[10]*e[15] + e[ 9]*e[ 2]*e[15] - e[ 9]*e[ 3]*e[14] - e[13]*e[ 2]*e[11] + e[13]*e[ 3]*e[10] ) / det, 00280 ( e[ 1]*e[ 6]*e[15] - e[ 1]*e[ 7]*e[14] - e[ 5]*e[ 2]*e[15] + e[ 5]*e[ 3]*e[14] + e[13]*e[ 2]*e[ 7] - e[13]*e[ 3]*e[ 6] ) / det, 00281 ( e[ 1]*e[ 7]*e[10] - e[ 1]*e[ 6]*e[11] + e[ 5]*e[ 2]*e[11] - e[ 5]*e[ 3]*e[10] - e[ 9]*e[ 2]*e[ 7] + e[ 9]*e[ 3]*e[ 6] ) / det, 00282 00283 ( e[ 4]*e[11]*e[14] - e[ 8]*e[ 7]*e[14] - e[12]*e[ 6]*e[11] - e[ 4]*e[10]*e[15] + e[ 8]*e[ 6]*e[15] + e[12]*e[ 7]*e[10] ) / det, 00284 ( e[ 0]*e[10]*e[15] - e[ 0]*e[11]*e[14] - e[ 8]*e[ 2]*e[15] + e[ 8]*e[ 3]*e[14] + e[12]*e[ 2]*e[11] - e[12]*e[ 3]*e[10] ) / det, 00285 ( e[ 0]*e[ 7]*e[14] - e[ 0]*e[ 6]*e[15] + e[ 4]*e[ 2]*e[15] - e[ 4]*e[ 3]*e[14] - e[12]*e[ 2]*e[ 7] + e[12]*e[ 3]*e[ 6] ) / det, 00286 ( e[ 0]*e[ 6]*e[11] - e[ 0]*e[ 7]*e[10] - e[ 4]*e[ 2]*e[11] + e[ 4]*e[ 3]*e[10] + e[ 8]*e[ 2]*e[ 7] - e[ 8]*e[ 3]*e[ 6] ) / det, 00287 00288 ( e[ 4]*e[ 9]*e[15] - e[ 4]*e[11]*e[13] - e[ 8]*e[ 5]*e[15] + e[ 8]*e[ 7]*e[13] + e[12]*e[ 5]*e[11] - e[12]*e[ 7]*e[ 9] ) / det, 00289 ( e[ 0]*e[11]*e[13] - e[ 0]*e[ 9]*e[15] + e[ 8]*e[ 1]*e[15] - e[ 8]*e[ 3]*e[13] - e[12]*e[ 1]*e[11] + e[12]*e[ 3]*e[ 9] ) / det, 00290 ( e[ 0]*e[ 5]*e[15] - e[ 0]*e[ 7]*e[13] - e[ 4]*e[ 1]*e[15] + e[ 4]*e[ 3]*e[13] + e[12]*e[ 1]*e[ 7] - e[12]*e[ 3]*e[ 5] ) / det, 00291 ( e[ 0]*e[ 7]*e[ 9] - e[ 0]*e[ 5]*e[11] + e[ 4]*e[ 1]*e[11] - e[ 4]*e[ 3]*e[ 9] - e[ 8]*e[ 1]*e[ 7] + e[ 8]*e[ 3]*e[ 5] ) / det, 00292 00293 ( e[12]*e[ 6]*e[ 9] + e[ 4]*e[10]*e[13] - e[12]*e[ 5]*e[10] - e[ 8]*e[ 6]*e[13] - e[ 4]*e[ 9]*e[14] + e[ 8]*e[ 5]*e[14] ) / det, 00294 ( e[ 0]*e[ 9]*e[14] - e[ 0]*e[10]*e[13] - e[ 8]*e[ 1]*e[14] + e[ 8]*e[ 2]*e[13] + e[12]*e[ 1]*e[10] - e[12]*e[ 2]*e[ 9] ) / det, 00295 ( e[ 0]*e[ 6]*e[13] - e[ 0]*e[ 5]*e[14] + e[ 4]*e[ 1]*e[14] - e[ 4]*e[ 2]*e[13] - e[12]*e[ 1]*e[ 6] + e[12]*e[ 2]*e[ 5] ) / det, 00296 ( e[ 0]*e[ 5]*e[10] - e[ 0]*e[ 6]*e[ 9] - e[ 4]*e[ 1]*e[10] + e[ 4]*e[ 2]*e[ 9] + e[ 8]*e[ 1]*e[ 6] - e[ 8]*e[ 2]*e[ 5] ) / det 00297 ); 00298 }
Definition at line 508 of file TAPsMatrix4x4.cpp.
00509 { 00510 return Matrix3x3<T>( e[0], e[1], e[2], 00511 e[4], e[5], e[6], 00512 e[8], e[9], e[10] ); 00513 }
Definition at line 252 of file TAPsMatrix4x4.cpp.
00253 { 00254 return Matrix4x4<T> ( e[ 0], e[ 4], e[ 8], e[12], 00255 e[ 1], e[ 5], e[ 9], e[13], 00256 e[ 2], e[ 6], e[10], e[14], 00257 e[ 3], e[ 7], e[11], e[15] ); 00258 }
| const double * Matrix4x4< T >::GetTransposeDataDouble | ( | ) | const [inline] |
Definition at line 569 of file TAPsMatrix4x4.cpp.
00570 { 00571 g_d[ 0] = static_cast<double>( e[ 0] ); 00572 g_d[ 1] = static_cast<double>( e[ 4] ); 00573 g_d[ 2] = static_cast<double>( e[ 8] ); 00574 g_d[ 3] = static_cast<double>( e[12] ); 00575 g_d[ 4] = static_cast<double>( e[ 1] ); 00576 g_d[ 5] = static_cast<double>( e[ 5] ); 00577 g_d[ 6] = static_cast<double>( e[ 9] ); 00578 g_d[ 7] = static_cast<double>( e[13] ); 00579 g_d[ 8] = static_cast<double>( e[ 2] ); 00580 g_d[ 9] = static_cast<double>( e[ 6] ); 00581 g_d[10] = static_cast<double>( e[10] ); 00582 g_d[11] = static_cast<double>( e[14] ); 00583 g_d[12] = static_cast<double>( e[ 3] ); 00584 g_d[13] = static_cast<double>( e[ 7] ); 00585 g_d[14] = static_cast<double>( e[11] ); 00586 g_d[15] = static_cast<double>( e[15] ); 00587 return g_d; 00588 }
| const float * Matrix4x4< T >::GetTransposeDataFloat | ( | ) | const [inline] |
Definition at line 547 of file TAPsMatrix4x4.cpp.
00548 { 00549 g_f[ 0] = static_cast<float>( e[ 0] ); 00550 g_f[ 1] = static_cast<float>( e[ 4] ); 00551 g_f[ 2] = static_cast<float>( e[ 8] ); 00552 g_f[ 3] = static_cast<float>( e[12] ); 00553 g_f[ 4] = static_cast<float>( e[ 1] ); 00554 g_f[ 5] = static_cast<float>( e[ 5] ); 00555 g_f[ 6] = static_cast<float>( e[ 9] ); 00556 g_f[ 7] = static_cast<float>( e[13] ); 00557 g_f[ 8] = static_cast<float>( e[ 2] ); 00558 g_f[ 9] = static_cast<float>( e[ 6] ); 00559 g_f[10] = static_cast<float>( e[10] ); 00560 g_f[11] = static_cast<float>( e[14] ); 00561 g_f[12] = static_cast<float>( e[ 3] ); 00562 g_f[13] = static_cast<float>( e[ 7] ); 00563 g_f[14] = static_cast<float>( e[11] ); 00564 g_f[15] = static_cast<float>( e[15] ); 00565 return g_f; 00566 }
| const long double * Matrix4x4< T >::GetTransposeDataLongDouble | ( | ) | const [inline] |
Definition at line 591 of file TAPsMatrix4x4.cpp.
00592 { 00593 g_ld[ 0] = static_cast<long double>( e[ 0] ); 00594 g_ld[ 1] = static_cast<long double>( e[ 4] ); 00595 g_ld[ 2] = static_cast<long double>( e[ 8] ); 00596 g_ld[ 3] = static_cast<long double>( e[12] ); 00597 g_ld[ 4] = static_cast<long double>( e[ 1] ); 00598 g_ld[ 5] = static_cast<long double>( e[ 5] ); 00599 g_ld[ 6] = static_cast<long double>( e[ 9] ); 00600 g_ld[ 7] = static_cast<long double>( e[13] ); 00601 g_ld[ 8] = static_cast<long double>( e[ 2] ); 00602 g_ld[ 9] = static_cast<long double>( e[ 6] ); 00603 g_ld[10] = static_cast<long double>( e[10] ); 00604 g_ld[11] = static_cast<long double>( e[14] ); 00605 g_ld[12] = static_cast<long double>( e[ 3] ); 00606 g_ld[13] = static_cast<long double>( e[ 7] ); 00607 g_ld[14] = static_cast<long double>( e[11] ); 00608 g_ld[15] = static_cast<long double>( e[15] ); 00609 return g_ld; 00610 }
| bool Matrix4x4< T >::IsIdentity | ( | ) | const [inline] |
Definition at line 212 of file TAPsMatrix4x4.cpp.
00213 { 00214 return e[ 0] == Math<T>::ONE && 00215 e[ 1] == Math<T>::ZERO && 00216 e[ 2] == Math<T>::ZERO && 00217 e[ 3] == Math<T>::ZERO && 00218 00219 e[ 4] == Math<T>::ZERO && 00220 e[ 5] == Math<T>::ONE && 00221 e[ 6] == Math<T>::ZERO && 00222 e[ 7] == Math<T>::ZERO && 00223 00224 e[ 8] == Math<T>::ZERO && 00225 e[ 9] == Math<T>::ZERO && 00226 e[10] == Math<T>::ONE && 00227 e[11] == Math<T>::ZERO && 00228 00229 e[12] == Math<T>::ZERO && 00230 e[13] == Math<T>::ZERO && 00231 e[14] == Math<T>::ZERO && 00232 e[15] == Math<T>::ONE; 00233 }
| bool Matrix4x4< T >::IsSquare | ( | ) | const [inline] |
| bool Matrix4x4< T >::IsSymmetric | ( | ) | const [inline] |
Definition at line 102 of file TAPsMatrix4x4.hpp.
00103 { return e[1]==e[4] && e[2]==e[ 8] && e[ 3]==e[12] 00104 && e[6]==e[9] && e[7]==e[13] && e[11]==e[14]; }
| void Matrix4x4< T >::MakeDiagonal | ( | T const | af[4] | ) | [inline] |
Definition at line 190 of file TAPsMatrix4x4.cpp.
00191 { 00192 e[ 0] = static_cast<T>(af[0]); 00193 e[ 5] = static_cast<T>(af[1]); 00194 e[10] = static_cast<T>(af[2]); 00195 e[15] = static_cast<T>(af[3]); 00196 e[ 1] = e[ 2] = e[ 3] = 00197 e[ 4] = e[ 6] = e[ 7] = 00198 e[ 8] = e[ 9] = e[11] = 00199 e[12] = e[13] = e[14] = Math<T>::ZERO; 00200 }
| void Matrix4x4< T >::MakeDiagonal | ( | T | d | ) | [inline] |
| void Matrix4x4< T >::MakeIdentity | ( | ) | [inline] |
| void Matrix4x4< T >::MakeZero | ( | ) | [inline] |
| Matrix4x4< T >::operator const T * | ( | ) | const [inline] |
| Matrix4x4< T >::operator T * | ( | ) | [inline] |
| T const & Matrix4x4< T >::operator() | ( | int | r, | |
| int | c | |||
| ) | const [inline] |
| T & Matrix4x4< T >::operator() | ( | int | r, | |
| int | c | |||
| ) | [inline] |
| Vector4< T > Matrix4x4< T >::operator* | ( | Vector4< T > const & | V | ) | const [inline] |
Definition at line 467 of file TAPsMatrix4x4.cpp.
00468 { 00469 return Vector4<T>( 00470 V[0]*e[ 0] + V[1]*e[ 1] + V[2]*e[ 2] + V[3]*e[ 3], 00471 V[0]*e[ 4] + V[1]*e[ 5] + V[2]*e[ 6] + V[3]*e[ 7], 00472 V[0]*e[ 8] + V[1]*e[ 9] + V[2]*e[10] + V[3]*e[11], 00473 V[0]*e[12] + V[1]*e[13] + V[2]*e[14] + V[3]*e[15] ); 00474 }
| Matrix4x4< T > Matrix4x4< T >::operator* | ( | Matrix4x4< T > const & | M | ) | const [inline] |
Definition at line 410 of file TAPsMatrix4x4.cpp.
00411 { 00412 return Matrix4x4<T>( 00413 e[ 0]*M.e[ 0] + e[ 1]*M.e[ 4] + e[ 2]*M.e[ 8] + e[ 3]*M.e[12], 00414 e[ 0]*M.e[ 1] + e[ 1]*M.e[ 5] + e[ 2]*M.e[ 9] + e[ 3]*M.e[13], 00415 e[ 0]*M.e[ 2] + e[ 1]*M.e[ 6] + e[ 2]*M.e[10] + e[ 3]*M.e[14], 00416 e[ 0]*M.e[ 3] + e[ 1]*M.e[ 7] + e[ 2]*M.e[11] + e[ 3]*M.e[15], 00417 00418 e[ 4]*M.e[ 0] + e[ 5]*M.e[ 4] + e[ 6]*M.e[ 8] + e[ 7]*M.e[12], 00419 e[ 4]*M.e[ 1] + e[ 5]*M.e[ 5] + e[ 6]*M.e[ 9] + e[ 7]*M.e[13], 00420 e[ 4]*M.e[ 2] + e[ 5]*M.e[ 6] + e[ 6]*M.e[10] + e[ 7]*M.e[14], 00421 e[ 4]*M.e[ 3] + e[ 5]*M.e[ 7] + e[ 6]*M.e[11] + e[ 7]*M.e[15], 00422 00423 e[ 8]*M.e[ 0] + e[ 9]*M.e[ 4] + e[10]*M.e[ 8] + e[11]*M.e[12], 00424 e[ 8]*M.e[ 1] + e[ 9]*M.e[ 5] + e[10]*M.e[ 9] + e[11]*M.e[13], 00425 e[ 8]*M.e[ 2] + e[ 9]*M.e[ 6] + e[10]*M.e[10] + e[11]*M.e[14], 00426 e[ 8]*M.e[ 3] + e[ 9]*M.e[ 7] + e[10]*M.e[11] + e[11]*M.e[15], 00427 00428 e[12]*M.e[ 0] + e[13]*M.e[ 4] + e[14]*M.e[ 8] + e[15]*M.e[12], 00429 e[12]*M.e[ 1] + e[13]*M.e[ 5] + e[14]*M.e[ 9] + e[15]*M.e[13], 00430 e[12]*M.e[ 2] + e[13]*M.e[ 6] + e[14]*M.e[10] + e[15]*M.e[14], 00431 e[12]*M.e[ 3] + e[13]*M.e[ 7] + e[14]*M.e[11] + e[15]*M.e[15] 00432 ); 00433 }
Definition at line 369 of file TAPsMatrix4x4.cpp.
00370 { 00371 e[ 0] *= s; e[ 1] *= s; e[ 2] *= s; e[ 3] *= s; 00372 e[ 4] *= s; e[ 5] *= s; e[ 6] *= s; e[ 7] *= s; 00373 e[ 8] *= s; e[ 9] *= s; e[10] *= s; e[11] *= s; 00374 e[12] *= s; e[13] *= s; e[14] *= s; e[15] *= s; 00375 return *this; 00376 }
| Matrix4x4< T > & Matrix4x4< T >::operator*= | ( | Matrix4x4< T > const & | M | ) | [inline] |
| Matrix4x4< T > Matrix4x4< T >::operator+ | ( | Matrix4x4< T > const & | M | ) | const [inline] |
Definition at line 392 of file TAPsMatrix4x4.cpp.
00393 { 00394 return Matrix4x4<T>( e[ 0]+M.e[ 0], e[ 1]+M.e[ 1], e[ 2]+M.e[ 2], e[ 3]+M.e[ 3], 00395 e[ 4]+M.e[ 4], e[ 5]+M.e[ 5], e[ 6]+M.e[ 6], e[ 7]+M.e[ 7], 00396 e[ 8]+M.e[ 8], e[ 9]+M.e[ 9], e[10]+M.e[10], e[11]+M.e[11], 00397 e[12]+M.e[12], e[13]+M.e[13], e[14]+M.e[14], e[15]+M.e[15] ); 00398 }
| Matrix4x4< T > & Matrix4x4< T >::operator+= | ( | Matrix4x4< T > const & | M | ) | [inline] |
Definition at line 342 of file TAPsMatrix4x4.cpp.
00343 { 00344 e[ 0] += M.e[ 0]; e[ 1] += M.e[ 1]; e[ 2] += M.e[ 2]; e[ 3] += M.e[ 3]; 00345 e[ 4] += M.e[ 4]; e[ 5] += M.e[ 5]; e[ 6] += M.e[ 6]; e[ 7] += M.e[ 7]; 00346 e[ 8] += M.e[ 8]; e[ 9] += M.e[ 9]; e[10] += M.e[10]; e[11] += M.e[11]; 00347 e[12] += M.e[12]; e[13] += M.e[13]; e[14] += M.e[14]; e[15] += M.e[15]; 00348 return *this; 00349 }
| Matrix4x4< T > Matrix4x4< T >::operator- | ( | Matrix4x4< T > const & | M | ) | const [inline] |
Definition at line 401 of file TAPsMatrix4x4.cpp.
00402 { 00403 return Matrix4x4<T>( e[ 0]-M.e[ 0], e[ 1]-M.e[ 1], e[ 2]-M.e[ 2], e[ 3]-M.e[ 3], 00404 e[ 4]-M.e[ 4], e[ 5]-M.e[ 5], e[ 6]-M.e[ 6], e[ 7]-M.e[ 7], 00405 e[ 8]-M.e[ 8], e[ 9]-M.e[ 9], e[10]-M.e[10], e[11]-M.e[11], 00406 e[12]-M.e[12], e[13]-M.e[13], e[14]-M.e[14], e[15]-M.e[15] ); 00407 }
Definition at line 330 of file TAPsMatrix4x4.cpp.
00331 { 00332 return Matrix4x4<T>( -e[ 0], -e[ 1], -e[ 2], -e[ 3], 00333 -e[ 4], -e[ 5], -e[ 6], -e[ 7], 00334 -e[ 8], -e[ 9], -e[10], -e[11], 00335 -e[12], -e[13], -e[14], -e[15] ); 00336 }
| Matrix4x4< T > & Matrix4x4< T >::operator-= | ( | Matrix4x4< T > const & | M | ) | [inline] |
Definition at line 352 of file TAPsMatrix4x4.cpp.
00353 { 00354 e[ 0] -= M.e[ 0]; e[ 1] -= M.e[ 1]; e[ 2] -= M.e[ 2]; e[ 3] -= M.e[ 3]; 00355 e[ 4] -= M.e[ 4]; e[ 5] -= M.e[ 5]; e[ 6] -= M.e[ 6]; e[ 7] -= M.e[ 7]; 00356 e[ 8] -= M.e[ 8]; e[ 9] -= M.e[ 9]; e[10] -= M.e[10]; e[11] -= M.e[11]; 00357 e[12] -= M.e[12]; e[13] -= M.e[13]; e[14] -= M.e[14]; e[15] -= M.e[15]; 00358 return *this; 00359 }
Definition at line 379 of file TAPsMatrix4x4.cpp.
00380 { 00381 e[ 0] /= s; e[ 1] /= s; e[ 2] /= s; e[ 3] /= s; 00382 e[ 4] /= s; e[ 5] /= s; e[ 6] /= s; e[ 7] /= s; 00383 e[ 8] /= s; e[ 9] /= s; e[10] /= s; e[11] /= s; 00384 e[12] /= s; e[13] /= s; e[14] /= s; e[15] /= s; 00385 return *this; 00386 }
| Matrix4x4< T > & Matrix4x4< T >::operator= | ( | Matrix4x4< T > const & | M | ) | [inline] |
Definition at line 314 of file TAPsMatrix4x4.cpp.
00315 { 00316 if ( this != &M ) 00317 { 00318 e[ 0] = M.e[ 0]; e[ 1] = M.e[ 1]; e[ 2] = M.e[ 2]; e[ 3] = M.e[ 3]; 00319 e[ 4] = M.e[ 4]; e[ 5] = M.e[ 5]; e[ 6] = M.e[ 6]; e[ 7] = M.e[ 7]; 00320 e[ 8] = M.e[ 8]; e[ 9] = M.e[ 9]; e[10] = M.e[10]; e[11] = M.e[11]; 00321 e[12] = M.e[12]; e[13] = M.e[13]; e[14] = M.e[14]; e[15] = M.e[15]; 00322 } 00323 return *this; 00324 }
| T const & Matrix4x4< T >::operator[] | ( | int | i | ) | const [inline] |
| T & Matrix4x4< T >::operator[] | ( | int | i | ) | [inline] |
| void Matrix4x4< T >::SetAllElements | ( | T const | af[16] | ) | [inline] |
Definition at line 161 of file TAPsMatrix4x4.cpp.
00162 { 00163 e[ 0] = af[ 0]; e[ 1] = af[ 1]; e[ 2] = af[ 2]; e[ 3] = af[ 3]; 00164 e[ 4] = af[ 4]; e[ 5] = af[ 5]; e[ 6] = af[ 6]; e[ 7] = af[ 7]; 00165 e[ 8] = af[ 8]; e[ 9] = af[ 9]; e[10] = af[10]; e[11] = af[11]; 00166 e[12] = af[12]; e[13] = af[13]; e[14] = af[14]; e[15] = af[15]; 00167 }
| void Matrix4x4< T >::SetAllElements | ( | T | e00, | |
| T | e01, | |||
| T | e02, | |||
| T | e03, | |||
| T | e10, | |||
| T | e11, | |||
| T | e12, | |||
| T | e13, | |||
| T | e20, | |||
| T | e21, | |||
| T | e22, | |||
| T | e23, | |||
| T | e30, | |||
| T | e31, | |||
| T | e32, | |||
| T | e33 | |||
| ) | [inline] |
| void Matrix4x4< T >::SetAllElements | ( | T | t | ) | [inline] |
Definition at line 239 of file TAPsMatrix4x4.cpp.
00240 { 00241 T temp; 00242 temp = e[ 1]; e[ 1] = e[ 4]; e[ 4] = temp; 00243 temp = e[ 2]; e[ 2] = e[ 8]; e[ 8] = temp; 00244 temp = e[ 3]; e[ 3] = e[12]; e[12] = temp; 00245 temp = e[ 6]; e[ 6] = e[ 9]; e[ 9] = temp; 00246 temp = e[ 7]; e[ 7] = e[13]; e[13] = temp; 00247 temp = e[11]; e[11] = e[14]; e[14] = temp; 00248 return *this; 00249 }
| std::ostream& operator<< | ( | std::ostream & | output, | |
| Matrix4x4< T > const & | M | |||
| ) | [friend] |
Definition at line 45 of file TAPsMatrix4x4.hpp.
00046 { 00047 int width = 14; 00048 //output << typeid(*this).name() << "( "; 00049 output << "Matrix4x4<" << typeid(T).name() << "> =\n" 00050 << "| " << std::setw(width) << M.e[0] 00051 << std::setw(width) << M.e[1] 00052 << std::setw(width) << M.e[2] 00053 << std::setw(width) << M.e[3] << " |\n" 00054 << "| " << std::setw(width) << M.e[4] 00055 << std::setw(width) << M.e[5] 00056 << std::setw(width) << M.e[6] 00057 << std::setw(width) << M.e[7] << " |\n" 00058 << "| " << std::setw(width) << M.e[8] 00059 << std::setw(width) << M.e[9] 00060 << std::setw(width) << M.e[10] 00061 << std::setw(width) << M.e[11] << " |\n" 00062 << "| " << std::setw(width) << M.e[12] 00063 << std::setw(width) << M.e[13] 00064 << std::setw(width) << M.e[14] 00065 << std::setw(width) << M.e[15] << " |\n"; 00066 //output << std::endl; 00067 return output; 00068 }
Definition at line 35 of file TAPsMatrix4x4.hpp.
Definition at line 39 of file TAPsMatrix4x4.hpp.
Definition at line 38 of file TAPsMatrix4x4.hpp.
Definition at line 40 of file TAPsMatrix4x4.hpp.
1.5.6