18 #ifndef GLM_ENABLE_EXPERIMENTAL    19 #   error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."    22 #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)    23 #   pragma message("GLM: GLM_GTX_matrix_operation extension included")    33     template<
typename T, qualifier Q>
    35         vec<2, T, Q> 
const& v);
    39     template<
typename T, qualifier Q>
    41         vec<2, T, Q> 
const& v);
    45     template<
typename T, qualifier Q>
    47         vec<2, T, Q> 
const& v);
    51     template<
typename T, qualifier Q>
    53         vec<2, T, Q> 
const& v);
    57     template<
typename T, qualifier Q>
    59         vec<3, T, Q> 
const& v);
    63     template<
typename T, qualifier Q>
    65         vec<3, T, Q> 
const& v);
    69     template<
typename T, qualifier Q>
    71         vec<2, T, Q> 
const& v);
    75     template<
typename T, qualifier Q>
    77         vec<3, T, Q> 
const& v);
    81     template<
typename T, qualifier Q>
    83         vec<4, T, Q> 
const& v);
    88 #include "matrix_operation.inl" GLM_FUNC_DECL mat< 4, 2, T, Q > diagonal4x2(vec< 2, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 3, 3, T, Q > diagonal3x3(vec< 3, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 2, 4, T, Q > diagonal2x4(vec< 2, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 3, 2, T, Q > diagonal3x2(vec< 2, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 3, 4, T, Q > diagonal3x4(vec< 3, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 4, 3, T, Q > diagonal4x3(vec< 3, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 4, 4, T, Q > diagonal4x4(vec< 4, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 2, 3, T, Q > diagonal2x3(vec< 2, T, Q > const &v)
Build a diagonal matrix. 
GLM_FUNC_DECL mat< 2, 2, T, Q > diagonal2x2(vec< 2, T, Q > const &v)
Build a diagonal matrix.