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 {
00025         namespace gtx{
00027         namespace matrix_major_storage
00028         {
00031 
00034                 template <typename T> 
00035                 detail::tmat2x2<T> rowMajor2(
00036                         const detail::tvec2<T>& v1, 
00037                         const detail::tvec2<T>& v2);
00038                 
00041                 template <typename T> 
00042                 detail::tmat2x2<T> rowMajor2(
00043                         const detail::tmat2x2<T>& m);
00044 
00047                 template <typename T> 
00048                 detail::tmat3x3<T> rowMajor3(
00049                         const detail::tvec3<T>& v1, 
00050                         const detail::tvec3<T>& v2, 
00051                         const detail::tvec3<T>& v3);
00052 
00055                 template <typename T> 
00056                 detail::tmat3x3<T> rowMajor3(
00057                         const detail::tmat3x3<T>& m);
00058 
00061                 template <typename T> 
00062                 detail::tmat4x4<T> rowMajor4(
00063                         const detail::tvec4<T>& v1, 
00064                         const detail::tvec4<T>& v2,
00065                         const detail::tvec4<T>& v3, 
00066                         const detail::tvec4<T>& v4);
00067 
00070                 template <typename T> 
00071                 detail::tmat4x4<T> rowMajor4(
00072                         const detail::tmat4x4<T>& m);
00073 
00076                 template <typename T> 
00077                 detail::tmat2x2<T> colMajor2(
00078                         const detail::tvec2<T>& v1, 
00079                         const detail::tvec2<T>& v2);
00080                 
00083                 template <typename T> 
00084                 detail::tmat2x2<T> colMajor2(
00085                         const detail::tmat2x2<T>& m);
00086 
00089                 template <typename T> 
00090                 detail::tmat3x3<T> colMajor3(
00091                         const detail::tvec3<T>& v1, 
00092                         const detail::tvec3<T>& v2, 
00093                         const detail::tvec3<T>& v3);
00094                 
00097                 template <typename T> 
00098                 detail::tmat3x3<T> colMajor3(
00099                         const detail::tmat3x3<T>& m);
00100                 
00103                 template <typename T> 
00104                 detail::tmat4x4<T> colMajor4(
00105                         const detail::tvec4<T>& v1, 
00106                         const detail::tvec4<T>& v2, 
00107                         const detail::tvec4<T>& v3, 
00108                         const detail::tvec4<T>& v4);
00109                                 
00112                 template <typename T> 
00113                 detail::tmat4x4<T> colMajor4(
00114                         const detail::tmat4x4<T>& m);
00115 
00117                 
00118         }//namespace matrix_major_storage
00119         }//namespace gtx
00120 }//namespace glm
00121 
00122 #include "matrix_major_storage.inl"
00123 
00124 namespace glm{using namespace gtx::matrix_major_storage;}
00125 
00126 #endif//glm_gtx_matrix_major_storage