func_matrix.hpp
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 #pragma once
00041 
00042 // Dependencies
00043 #include "../detail/precision.hpp"
00044 #include "../detail/setup.hpp"
00045 #include "../detail/type_mat.hpp"
00046 #include "../vec2.hpp"
00047 #include "../vec3.hpp"
00048 #include "../vec4.hpp"
00049 #include "../mat2x2.hpp"
00050 #include "../mat2x3.hpp"
00051 #include "../mat2x4.hpp"
00052 #include "../mat3x2.hpp"
00053 #include "../mat3x3.hpp"
00054 #include "../mat3x4.hpp"
00055 #include "../mat4x2.hpp"
00056 #include "../mat4x3.hpp"
00057 #include "../mat4x4.hpp"
00058 
00059 namespace glm{
00060 namespace detail
00061 {
00062         template <typename T, precision P>
00063         struct outerProduct_trait<T, P, tvec2, tvec2>
00064         {
00065                 typedef tmat2x2<T, P> type;
00066         };
00067 
00068         template <typename T, precision P>
00069         struct outerProduct_trait<T, P, tvec2, tvec3>
00070         {
00071                 typedef tmat2x3<T, P> type;
00072         };
00073 
00074         template <typename T, precision P>
00075         struct outerProduct_trait<T, P, tvec2, tvec4>
00076         {
00077                 typedef tmat2x4<T, P> type;
00078         };
00079 
00080         template <typename T, precision P>
00081         struct outerProduct_trait<T, P, tvec3, tvec2>
00082         {
00083                 typedef tmat3x2<T, P> type;
00084         };
00085 
00086         template <typename T, precision P>
00087         struct outerProduct_trait<T, P, tvec3, tvec3>
00088         {
00089                 typedef tmat3x3<T, P> type;
00090         };
00091 
00092         template <typename T, precision P>
00093         struct outerProduct_trait<T, P, tvec3, tvec4>
00094         {
00095                 typedef tmat3x4<T, P> type;
00096         };
00097 
00098         template <typename T, precision P>
00099         struct outerProduct_trait<T, P, tvec4, tvec2>
00100         {
00101                 typedef tmat4x2<T, P> type;
00102         };
00103 
00104         template <typename T, precision P>
00105         struct outerProduct_trait<T, P, tvec4, tvec3>
00106         {
00107                 typedef tmat4x3<T, P> type;
00108         };
00109 
00110         template <typename T, precision P>
00111         struct outerProduct_trait<T, P, tvec4, tvec4>
00112         {
00113                 typedef tmat4x4<T, P> type;
00114         };
00115 
00116 }//namespace detail
00117 
00120 
00128         template <typename T, precision P, template <typename, precision> class matType>
00129         GLM_FUNC_DECL matType<T, P> matrixCompMult(matType<T, P> const & x, matType<T, P> const & y);
00130 
00141         template <typename T, precision P, template <typename, precision> class vecTypeA, template <typename, precision> class vecTypeB>
00142         GLM_FUNC_DECL typename detail::outerProduct_trait<T, P, vecTypeA, vecTypeB>::type outerProduct(vecTypeA<T, P> const & c, vecTypeB<T, P> const & r);
00143 
00150 #       if((GLM_COMPILER & GLM_COMPILER_VC) && (GLM_COMPILER >= GLM_COMPILER_VC11))
00151                 template <typename T, precision P, template <typename, precision> class matType>
00152                 GLM_FUNC_DECL typename matType<T, P>::transpose_type transpose(matType<T, P> const & x);
00153 #       endif
00154         
00161         template <typename T, precision P, template <typename, precision> class matType>
00162         GLM_FUNC_DECL T determinant(matType<T, P> const & m);
00163 
00170         template <typename T, precision P, template <typename, precision> class matType>
00171         GLM_FUNC_DECL matType<T, P> inverse(matType<T, P> const & m);
00172 
00174 }//namespace glm
00175 
00176 #include "func_matrix.inl"


rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jun 6 2019 21:59:20