matrix_major_storage.hpp
00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2006-04-19
00005 // Updated : 2009-02-19
00006 // Licence : This source is under MIT License
00007 // File    : glm/gtx/matrix_major_storage.hpp
00009 // Dependency:
00010 // - GLM core
00012 
00013 #ifndef glm_gtx_matrix_major_storage
00014 #define glm_gtx_matrix_major_storage
00015 
00016 // Dependency:
00017 #include "../glm.hpp"
00018 
00019 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00020 #       pragma message("GLM: GLM_GTX_matrix_major_storage extension included")
00021 #endif
00022 
00023 namespace glm{
00024 namespace gtx{
00025 namespace matrix_major_storage 
00026 {
00029 
00032         template <typename T> 
00033         detail::tmat2x2<T> rowMajor2(
00034                 const detail::tvec2<T>& v1, 
00035                 const detail::tvec2<T>& v2);
00036                 
00039         template <typename T> 
00040         detail::tmat2x2<T> rowMajor2(
00041                 const detail::tmat2x2<T>& m);
00042 
00045         template <typename T> 
00046         detail::tmat3x3<T> rowMajor3(
00047                 const detail::tvec3<T>& v1, 
00048                 const detail::tvec3<T>& v2, 
00049                 const detail::tvec3<T>& v3);
00050 
00053         template <typename T> 
00054         detail::tmat3x3<T> rowMajor3(
00055                 const detail::tmat3x3<T>& m);
00056 
00059         template <typename T> 
00060         detail::tmat4x4<T> rowMajor4(
00061                 const detail::tvec4<T>& v1, 
00062                 const detail::tvec4<T>& v2,
00063                 const detail::tvec4<T>& v3, 
00064                 const detail::tvec4<T>& v4);
00065 
00068         template <typename T> 
00069         detail::tmat4x4<T> rowMajor4(
00070                 const detail::tmat4x4<T>& m);
00071 
00074         template <typename T> 
00075         detail::tmat2x2<T> colMajor2(
00076                 const detail::tvec2<T>& v1, 
00077                 const detail::tvec2<T>& v2);
00078                 
00081         template <typename T> 
00082         detail::tmat2x2<T> colMajor2(
00083                 const detail::tmat2x2<T>& m);
00084 
00087         template <typename T> 
00088         detail::tmat3x3<T> colMajor3(
00089                 const detail::tvec3<T>& v1, 
00090                 const detail::tvec3<T>& v2, 
00091                 const detail::tvec3<T>& v3);
00092                 
00095         template <typename T> 
00096         detail::tmat3x3<T> colMajor3(
00097                 const detail::tmat3x3<T>& m);
00098                 
00101         template <typename T> 
00102         detail::tmat4x4<T> colMajor4(
00103                 const detail::tvec4<T>& v1, 
00104                 const detail::tvec4<T>& v2, 
00105                 const detail::tvec4<T>& v3, 
00106                 const detail::tvec4<T>& v4);
00107                                 
00110         template <typename T> 
00111         detail::tmat4x4<T> colMajor4(
00112                 const detail::tmat4x4<T>& m);
00113 
00115 }//namespace matrix_major_storage
00116 }//namespace gtx
00117 }//namespace glm
00118 
00119 #include "matrix_major_storage.inl"
00120 
00121 namespace glm{using namespace gtx::matrix_major_storage;}
00122 
00123 #endif//glm_gtx_matrix_major_storage