2011-11-12 23:26:02 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
2012-01-25 12:56:50 +00:00
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2011-12-07 14:50:15 +00:00
2012-01-25 12:56:50 +00:00
< title > simd_mat4.hpp Source File< / title >
2011-11-12 23:26:02 +00:00
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
2011-12-07 14:50:15 +00:00
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
2011-11-12 23:26:02 +00:00
< / head >
< body >
2011-12-07 14:50:15 +00:00
< div id = "top" > <!-- do not remove this div! -->
2011-11-12 23:26:02 +00:00
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
2011-12-07 14:50:15 +00:00
< td id = "projectlogo" > < img alt = "Logo" src = "logo-mini.png" / > < / td >
2011-11-12 23:26:02 +00:00
< / tr >
< / tbody >
< / table >
< / div >
2011-12-07 14:50:15 +00:00
2012-01-25 12:56:50 +00:00
<!-- Generated by Doxygen 1.7.6.1 -->
2011-11-12 23:26:02 +00:00
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "pages.html" > < span > Related  Pages< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
< li class = "current" > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< / ul >
< / div >
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li > < a href = "files.html" > < span > File  List< / span > < / a > < / li >
< / ul >
< / div >
2012-01-25 12:56:50 +00:00
< / div >
2011-11-12 23:26:02 +00:00
< div class = "header" >
< div class = "headertitle" >
2012-01-25 12:56:50 +00:00
< div class = "title" > simd_mat4.hpp< / div > < / div >
< / div > <!-- header -->
2011-11-12 23:26:02 +00:00
< div class = "contents" >
2012-01-25 12:56:50 +00:00
< div class = "fragment" > < pre class = "fragment" > < a name = "l00001" > < / a > 00001
2011-11-12 23:26:02 +00:00
< a name = "l00002" > < / a > 00002
< a name = "l00003" > < / a > 00003
< a name = "l00004" > < / a > 00004
< a name = "l00005" > < / a > 00005
< a name = "l00006" > < / a > 00006
< a name = "l00007" > < / a > 00007
< a name = "l00008" > < / a > 00008
< a name = "l00009" > < / a > 00009
< a name = "l00010" > < / a > 00010
< a name = "l00011" > < / a > 00011
< a name = "l00012" > < / a > 00012
< a name = "l00013" > < / a > 00013
< a name = "l00014" > < / a > 00014
< a name = "l00015" > < / a > 00015
< a name = "l00016" > < / a > 00016
< a name = "l00017" > < / a > 00017
< a name = "l00018" > < / a > 00018
< a name = "l00019" > < / a > 00019
< a name = "l00020" > < / a > 00020
< a name = "l00021" > < / a > 00021
< a name = "l00022" > < / a > 00022
< a name = "l00023" > < / a > 00023
< a name = "l00024" > < / a > 00024
< a name = "l00025" > < / a > 00025
< a name = "l00026" > < / a > 00026
< a name = "l00027" > < / a > 00027
< a name = "l00028" > < / a > 00028
< a name = "l00029" > < / a > 00029
< a name = "l00030" > < / a > 00030
< a name = "l00031" > < / a > 00031
< a name = "l00032" > < / a > 00032
< a name = "l00033" > < / a > 00033
< a name = "l00034" > < / a > 00034
< a name = "l00035" > < / a > 00035
< a name = "l00036" > < / a > 00036
< a name = "l00037" > < / a > 00037
2012-01-25 12:56:50 +00:00
< a name = "l00038" > < / a > 00038 < span class = "preprocessor" > #ifndef GLM_GTX_simd_mat4< / span >
< a name = "l00039" > < / a > 00039 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #define GLM_GTX_simd_mat4 GLM_VERSION< / span >
< a name = "l00040" > < / a > 00040 < span class = "preprocessor" > < / span >
< a name = "l00041" > < / a > 00041 < span class = "comment" > // Dependency:< / span >
< a name = "l00042" > < / a > 00042 < span class = "preprocessor" > #include " ../glm.hpp" < / span >
< a name = "l00043" > < / a > 00043
< a name = "l00044" > < / a > 00044 < span class = "preprocessor" > #if(GLM_ARCH != GLM_ARCH_PURE)< / span >
< a name = "l00045" > < / a > 00045 < span class = "preprocessor" > < / span >
< a name = "l00046" > < / a > 00046 < span class = "preprocessor" > #if(GLM_ARCH & GLM_ARCH_SSE2)< / span >
< a name = "l00047" > < / a > 00047 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # include " ../core/intrinsic_matrix.hpp" < / span >
< a name = "l00048" > < / a > 00048 < span class = "preprocessor" > # include " ../gtx/simd_vec4.hpp" < / span >
< a name = "l00049" > < / a > 00049 < span class = "preprocessor" > #else< / span >
< a name = "l00050" > < / a > 00050 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # error " GLM: GLM_GTX_simd_mat4 requires compiler support of SSE2 through intrinsics" < / span >
< a name = "l00051" > < / a > 00051 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #endif< / span >
< a name = "l00052" > < / a > 00052 < span class = "preprocessor" > < / span >
< a name = "l00053" > < / a > 00053 < span class = "preprocessor" > #if(defined(GLM_MESSAGES) & & !defined(glm_ext))< / span >
< a name = "l00054" > < / a > 00054 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # pragma message(" GLM: GLM_GTX_simd_mat4 extension included" )< / span >
< a name = "l00055" > < / a > 00055 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #endif< / span >
< a name = "l00056" > < / a > 00056 < span class = "preprocessor" > < / span >
< a name = "l00057" > < / a > 00057 < span class = "keyword" > namespace < / span > glm{
< a name = "l00058" > < / a > 00058 < span class = "keyword" > namespace < / span > detail
< a name = "l00059" > < / a > 00059 {
< a name = "l00062" > < / a > 00062 GLM_ALIGNED_STRUCT(16) fmat4x4SIMD
< a name = "l00063" > < / a > 00063 {
< a name = "l00064" > < / a > 00064 < span class = "keyword" > enum< / span > ctor{null};
< a name = "l00065" > < / a > 00065
< a name = "l00066" > < / a > 00066 < span class = "keyword" > typedef< / span > < span class = "keywordtype" > float< / span > value_type;
< a name = "l00067" > < / a > 00067 < span class = "keyword" > typedef< / span > fvec4SIMD col_type;
< a name = "l00068" > < / a > 00068 < span class = "keyword" > typedef< / span > fvec4SIMD row_type;
< a name = "l00069" > < / a > 00069 < span class = "keyword" > typedef< / span > std::size_t size_type;
< a name = "l00070" > < / a > 00070 < span class = "keyword" > static< / span > size_type value_size();
< a name = "l00071" > < / a > 00071 < span class = "keyword" > static< / span > size_type col_size();
< a name = "l00072" > < / a > 00072 < span class = "keyword" > static< / span > size_type row_size();
< a name = "l00073" > < / a > 00073 < span class = "keyword" > static< / span > < span class = "keywordtype" > bool< / span > is_matrix();
2011-11-12 23:26:02 +00:00
< a name = "l00074" > < / a > 00074
2012-01-25 12:56:50 +00:00
< a name = "l00075" > < / a > 00075 fvec4SIMD Data[4];
< a name = "l00076" > < / a > 00076
< a name = "l00078" > < / a > 00078 < span class = "comment" > // Constructors< / span >
< a name = "l00079" > < / a > 00079
< a name = "l00080" > < / a > 00080 fmat4x4SIMD();
< a name = "l00081" > < / a > 00081 < span class = "keyword" > explicit< / span > fmat4x4SIMD(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00082" > < / a > 00082 < span class = "keyword" > explicit< / span > fmat4x4SIMD(
< a name = "l00083" > < / a > 00083 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & x0, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y0, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & z0, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & w0,
< a name = "l00084" > < / a > 00084 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & x1, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y1, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & z1, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & w1,
< a name = "l00085" > < / a > 00085 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & x2, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y2, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & z2, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & w2,
< a name = "l00086" > < / a > 00086 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & x3, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y3, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & z3, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & w3);
< a name = "l00087" > < / a > 00087 < span class = "keyword" > explicit< / span > fmat4x4SIMD(
< a name = "l00088" > < / a > 00088 fvec4SIMD < span class = "keyword" > const< / span > & v0,
< a name = "l00089" > < / a > 00089 fvec4SIMD < span class = "keyword" > const< / span > & v1,
< a name = "l00090" > < / a > 00090 fvec4SIMD < span class = "keyword" > const< / span > & v2,
< a name = "l00091" > < / a > 00091 fvec4SIMD < span class = "keyword" > const< / span > & v3);
< a name = "l00092" > < / a > 00092 < span class = "keyword" > explicit< / span > fmat4x4SIMD(
< a name = "l00093" > < / a > 00093 tmat4x4< float> < span class = "keyword" > const< / span > & m);
< a name = "l00094" > < / a > 00094
< a name = "l00095" > < / a > 00095 < span class = "comment" > // Conversions< / span >
< a name = "l00096" > < / a > 00096 < span class = "comment" > //template < typename U> < / span >
< a name = "l00097" > < / a > 00097 < span class = "comment" > //explicit tmat4x4(tmat4x4< U> const & m);< / span >
< a name = "l00098" > < / a > 00098
< a name = "l00099" > < / a > 00099 < span class = "comment" > //explicit tmat4x4(tmat2x2< T> const & x);< / span >
< a name = "l00100" > < / a > 00100 < span class = "comment" > //explicit tmat4x4(tmat3x3< T> const & x);< / span >
< a name = "l00101" > < / a > 00101 < span class = "comment" > //explicit tmat4x4(tmat2x3< T> const & x);< / span >
< a name = "l00102" > < / a > 00102 < span class = "comment" > //explicit tmat4x4(tmat3x2< T> const & x);< / span >
< a name = "l00103" > < / a > 00103 < span class = "comment" > //explicit tmat4x4(tmat2x4< T> const & x);< / span >
< a name = "l00104" > < / a > 00104 < span class = "comment" > //explicit tmat4x4(tmat4x2< T> const & x);< / span >
< a name = "l00105" > < / a > 00105 < span class = "comment" > //explicit tmat4x4(tmat3x4< T> const & x);< / span >
< a name = "l00106" > < / a > 00106 < span class = "comment" > //explicit tmat4x4(tmat4x3< T> const & x);< / span >
< a name = "l00107" > < / a > 00107
< a name = "l00108" > < / a > 00108 < span class = "comment" > // Accesses< / span >
< a name = "l00109" > < / a > 00109 fvec4SIMD & operator[](size_type i);
< a name = "l00110" > < / a > 00110 fvec4SIMD < span class = "keyword" > const< / span > & operator[](size_type i) < span class = "keyword" > const< / span > ;
< a name = "l00111" > < / a > 00111
< a name = "l00112" > < / a > 00112 < span class = "comment" > // Unary updatable operators< / span >
< a name = "l00113" > < / a > 00113 fmat4x4SIMD & operator= (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00114" > < / a > 00114 fmat4x4SIMD & operator+= (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00115" > < / a > 00115 fmat4x4SIMD & operator+= (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00116" > < / a > 00116 fmat4x4SIMD & operator-= (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00117" > < / a > 00117 fmat4x4SIMD & operator-= (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00118" > < / a > 00118 fmat4x4SIMD & operator*= (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00119" > < / a > 00119 fmat4x4SIMD & operator*= (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00120" > < / a > 00120 fmat4x4SIMD & operator/= (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00121" > < / a > 00121 fmat4x4SIMD & operator/= (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00122" > < / a > 00122 fmat4x4SIMD & operator++ ();
< a name = "l00123" > < / a > 00123 fmat4x4SIMD & operator-- ();
< a name = "l00124" > < / a > 00124 };
< a name = "l00125" > < / a > 00125
< a name = "l00126" > < / a > 00126 < span class = "comment" > // Binary operators< / span >
< a name = "l00127" > < / a > 00127 fmat4x4SIMD operator+ (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00128" > < / a > 00128 fmat4x4SIMD operator+ (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00129" > < / a > 00129 fmat4x4SIMD operator+ (fmat4x4SIMD < span class = "keyword" > const< / span > & m1, fmat4x4SIMD < span class = "keyword" > const< / span > & m2);
< a name = "l00130" > < / a > 00130
< a name = "l00131" > < / a > 00131 fmat4x4SIMD operator- (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00132" > < / a > 00132 fmat4x4SIMD operator- (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00133" > < / a > 00133 fmat4x4SIMD operator- (fmat4x4SIMD < span class = "keyword" > const< / span > & m1, fmat4x4SIMD < span class = "keyword" > const< / span > & m2);
< a name = "l00134" > < / a > 00134
< a name = "l00135" > < / a > 00135 fmat4x4SIMD operator* (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00136" > < / a > 00136 fmat4x4SIMD operator* (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00137" > < / a > 00137
< a name = "l00138" > < / a > 00138 fvec4SIMD operator* (fmat4x4SIMD < span class = "keyword" > const< / span > & m, fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00139" > < / a > 00139 fvec4SIMD operator* (fvec4SIMD < span class = "keyword" > const< / span > & v, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00140" > < / a > 00140
< a name = "l00141" > < / a > 00141 fmat4x4SIMD operator* (fmat4x4SIMD < span class = "keyword" > const< / span > & m1, fmat4x4SIMD < span class = "keyword" > const< / span > & m2);
< a name = "l00142" > < / a > 00142
< a name = "l00143" > < / a > 00143 fmat4x4SIMD operator/ (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00144" > < / a > 00144 fmat4x4SIMD operator/ (< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00145" > < / a > 00145
< a name = "l00146" > < / a > 00146 fvec4SIMD operator/ (fmat4x4SIMD < span class = "keyword" > const< / span > & m, fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00147" > < / a > 00147 fvec4SIMD operator/ (fvec4SIMD < span class = "keyword" > const< / span > & v, fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00148" > < / a > 00148
< a name = "l00149" > < / a > 00149 fmat4x4SIMD operator/ (fmat4x4SIMD < span class = "keyword" > const< / span > & m1, fmat4x4SIMD < span class = "keyword" > const< / span > & m2);
< a name = "l00150" > < / a > 00150
< a name = "l00151" > < / a > 00151 < span class = "comment" > // Unary constant operators< / span >
< a name = "l00152" > < / a > 00152 fmat4x4SIMD < span class = "keyword" > const< / span > operator- (fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00153" > < / a > 00153 fmat4x4SIMD < span class = "keyword" > const< / span > operator-- (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > int< / span > );
< a name = "l00154" > < / a > 00154 fmat4x4SIMD < span class = "keyword" > const< / span > operator++ (fmat4x4SIMD < span class = "keyword" > const< / span > & m, < span class = "keywordtype" > int< / span > );
< a name = "l00155" > < / a > 00155 }< span class = "comment" > //namespace detail< / span >
< a name = "l00156" > < / a > 00156
< a name = "l00157" > < / a > 00157 < span class = "keyword" > typedef< / span > detail::fmat4x4SIMD simdMat4;
< a name = "l00158" > < / a > 00158
< a name = "l00161" > < / a > 00161
< a name = "l00164" > < / a > 00164 detail::tmat4x4< float> mat4_cast(
< a name = "l00165" > < / a > 00165 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00166" > < / a > 00166
< a name = "l00170" > < / a > 00170 detail::fmat4x4SIMD < a class = "code" href = "a00129.html#ga0e48491a51b3f366d671c01894705605" title = "Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and..." > matrixCompMult< / a > (
< a name = "l00171" > < / a > 00171 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00172" > < / a > 00172 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00173" > < / a > 00173
< a name = "l00178" > < / a > 00178 detail::fmat4x4SIMD < a class = "code" href = "a00129.html#ga5d896e8651512fc098a677dbe403eeac" title = "Treats the first parameter c as a column vector and the second parameter r as a row vector and does a..." > outerProduct< / a > (
< a name = "l00179" > < / a > 00179 detail::fvec4SIMD < span class = "keyword" > const< / span > & c,
< a name = "l00180" > < / a > 00180 detail::fvec4SIMD < span class = "keyword" > const< / span > & r);
< a name = "l00181" > < / a > 00181
< a name = "l00184" > < / a > 00184 detail::fmat4x4SIMD < a class = "code" href = "a00129.html#gac58a4106a57fb7da41b3aeae3832998b" title = "Returns the transposed matrix of x." > transpose< / a > (
< a name = "l00185" > < / a > 00185 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00186" > < / a > 00186
< a name = "l00189" > < / a > 00189 < span class = "keywordtype" > float< / span > < a class = "code" href = "a00129.html#gad3bfb2098e1572d2131a261c1fb76dd4" title = "Return the determinant of a mat2 matrix." > determinant< / a > (
< a name = "l00190" > < / a > 00190 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00191" > < / a > 00191
< a name = "l00194" > < / a > 00194 detail::fmat4x4SIMD < a class = "code" href = "a00129.html#gada3384a86cf38a1fd96275194b8ba8c0" title = "Return the inverse of a mat2 matrix." > inverse< / a > (
< a name = "l00195" > < / a > 00195 detail::fmat4x4SIMD < span class = "keyword" > const< / span > & m);
< a name = "l00196" > < / a > 00196
< a name = "l00198" > < / a > 00198 }< span class = "comment" > // namespace glm< / span >
< a name = "l00199" > < / a > 00199
< a name = "l00200" > < / a > 00200 < span class = "preprocessor" > #include " simd_mat4.inl" < / span >
< a name = "l00201" > < / a > 00201
< a name = "l00202" > < / a > 00202 < span class = "preprocessor" > #endif//(GLM_ARCH != GLM_ARCH_PURE)< / span >
< a name = "l00203" > < / a > 00203 < span class = "preprocessor" > < / span >
< a name = "l00204" > < / a > 00204 < span class = "preprocessor" > #endif//GLM_GTX_simd_mat4< / span >
< / pre > < / div > < / div > <!-- contents -->
2011-12-07 14:50:15 +00:00
< hr class = "footer" / > < address class = "footer" > < small >
Generated by   < a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "doxygen.png" alt = "doxygen" / >
2012-01-25 12:56:50 +00:00
< / a > 1.7.6.1
2011-12-07 14:50:15 +00:00
< / small > < / address >
2011-11-12 23:26:02 +00:00
< / body >
< / html >