a00133.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <title>Matrix functions</title>
  7. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  8. <script type="text/javascript" src="jquery.js"></script>
  9. <script type="text/javascript" src="dynsections.js"></script>
  10. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  11. </head>
  12. <body>
  13. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  14. <div id="titlearea">
  15. <table cellspacing="0" cellpadding="0">
  16. <tbody>
  17. <tr style="height: 56px;">
  18. <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  19. </tr>
  20. </tbody>
  21. </table>
  22. </div>
  23. <!-- end header part -->
  24. <!-- Generated by Doxygen 1.8.2 -->
  25. <div id="navrow1" class="tabs">
  26. <ul class="tablist">
  27. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  28. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  29. <li><a href="modules.html"><span>Modules</span></a></li>
  30. <li><a href="files.html"><span>Files</span></a></li>
  31. </ul>
  32. </div>
  33. </div><!-- top -->
  34. <div class="header">
  35. <div class="summary">
  36. <a href="#func-members">Functions</a> </div>
  37. <div class="headertitle">
  38. <div class="title">Matrix functions</div> </div>
  39. <div class="ingroups"><a class="el" href="a00141.html">GLM Core</a></div></div><!--header-->
  40. <div class="contents">
  41. <table class="memberdecls">
  42. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  43. Functions</h2></td></tr>
  44. <tr class="memitem:gad3bfb2098e1572d2131a261c1fb76dd4"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  45. <tr class="memitem:gad3bfb2098e1572d2131a261c1fb76dd4"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;<br class="typebreak"/>
  46. ::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gad3bfb2098e1572d2131a261c1fb76dd4">determinant</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
  47. <tr class="separator:gad3bfb2098e1572d2131a261c1fb76dd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  48. <tr class="memitem:ga2f26bb474e077cf03b9db23f813e8450"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  49. <tr class="memitem:ga2f26bb474e077cf03b9db23f813e8450"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;<br class="typebreak"/>
  50. ::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga2f26bb474e077cf03b9db23f813e8450">determinant</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
  51. <tr class="separator:ga2f26bb474e077cf03b9db23f813e8450"><td class="memSeparator" colspan="2">&#160;</td></tr>
  52. <tr class="memitem:ga1daa306eecf6e8b379626d761b8c222f"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  53. <tr class="memitem:ga1daa306eecf6e8b379626d761b8c222f"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;<br class="typebreak"/>
  54. ::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga1daa306eecf6e8b379626d761b8c222f">determinant</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
  55. <tr class="separator:ga1daa306eecf6e8b379626d761b8c222f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  56. <tr class="memitem:gada3384a86cf38a1fd96275194b8ba8c0"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  57. <tr class="memitem:gada3384a86cf38a1fd96275194b8ba8c0"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat2x2&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gada3384a86cf38a1fd96275194b8ba8c0">inverse</a> (detail::tmat2x2&lt; valType &gt; const &amp;m)</td></tr>
  58. <tr class="separator:gada3384a86cf38a1fd96275194b8ba8c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  59. <tr class="memitem:ga1a455651f7ba323ade0cd9191542b179"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  60. <tr class="memitem:ga1a455651f7ba323ade0cd9191542b179"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat3x3&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga1a455651f7ba323ade0cd9191542b179">inverse</a> (detail::tmat3x3&lt; valType &gt; const &amp;m)</td></tr>
  61. <tr class="separator:ga1a455651f7ba323ade0cd9191542b179"><td class="memSeparator" colspan="2">&#160;</td></tr>
  62. <tr class="memitem:gabc94b29dea14e111e48bc963c47559b2"><td class="memTemplParams" colspan="2">template&lt;typename valType &gt; </td></tr>
  63. <tr class="memitem:gabc94b29dea14e111e48bc963c47559b2"><td class="memTemplItemLeft" align="right" valign="top">detail::tmat4x4&lt; valType &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gabc94b29dea14e111e48bc963c47559b2">inverse</a> (detail::tmat4x4&lt; valType &gt; const &amp;m)</td></tr>
  64. <tr class="separator:gabc94b29dea14e111e48bc963c47559b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  65. <tr class="memitem:ga0e48491a51b3f366d671c01894705605"><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
  66. <tr class="memitem:ga0e48491a51b3f366d671c01894705605"><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga0e48491a51b3f366d671c01894705605">matrixCompMult</a> (matType const &amp;x, matType const &amp;y)</td></tr>
  67. <tr class="separator:ga0e48491a51b3f366d671c01894705605"><td class="memSeparator" colspan="2">&#160;</td></tr>
  68. <tr class="memitem:ga5d896e8651512fc098a677dbe403eeac"><td class="memTemplParams" colspan="2">template&lt;typename vecType , typename matType &gt; </td></tr>
  69. <tr class="memitem:ga5d896e8651512fc098a677dbe403eeac"><td class="memTemplItemLeft" align="right" valign="top">matType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#ga5d896e8651512fc098a677dbe403eeac">outerProduct</a> (vecType const &amp;c, vecType const &amp;r)</td></tr>
  70. <tr class="separator:ga5d896e8651512fc098a677dbe403eeac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  71. <tr class="memitem:gac58a4106a57fb7da41b3aeae3832998b"><td class="memTemplParams" colspan="2">template&lt;typename matType &gt; </td></tr>
  72. <tr class="memitem:gac58a4106a57fb7da41b3aeae3832998b"><td class="memTemplItemLeft" align="right" valign="top">matType::transpose_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00133.html#gac58a4106a57fb7da41b3aeae3832998b">transpose</a> (matType const &amp;x)</td></tr>
  73. <tr class="separator:gac58a4106a57fb7da41b3aeae3832998b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  74. </table>
  75. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  76. <p>For each of the following built-in matrix functions, there is both a single-precision floating point version, where all arguments and return values are single precision, and a double-precision floating version, where all arguments and return values are double precision. </p>
  77. <p>Only the single-precision floating point version is shown. </p>
  78. <h2 class="groupheader">Function Documentation</h2>
  79. <a class="anchor" id="gad3bfb2098e1572d2131a261c1fb76dd4"></a>
  80. <div class="memitem">
  81. <div class="memproto">
  82. <table class="memname">
  83. <tr>
  84. <td class="memname">detail::tmat2x2&lt;valType&gt;::value_type glm::determinant </td>
  85. <td>(</td>
  86. <td class="paramtype">detail::tmat2x2&lt; valType &gt; const &amp;&#160;</td>
  87. <td class="paramname"><em>m</em></td><td>)</td>
  88. <td></td>
  89. </tr>
  90. </table>
  91. </div><div class="memdoc">
  92. <p>Return the determinant of a mat2 matrix. </p>
  93. <dl class="tparams"><dt>Template Parameters</dt><dd>
  94. <table class="tparams">
  95. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  96. </table>
  97. </dd>
  98. </dl>
  99. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
  100. <dd>
  101. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  102. </div>
  103. </div>
  104. <a class="anchor" id="ga2f26bb474e077cf03b9db23f813e8450"></a>
  105. <div class="memitem">
  106. <div class="memproto">
  107. <table class="memname">
  108. <tr>
  109. <td class="memname">detail::tmat3x3&lt;valType&gt;::value_type glm::determinant </td>
  110. <td>(</td>
  111. <td class="paramtype">detail::tmat3x3&lt; valType &gt; const &amp;&#160;</td>
  112. <td class="paramname"><em>m</em></td><td>)</td>
  113. <td></td>
  114. </tr>
  115. </table>
  116. </div><div class="memdoc">
  117. <p>Return the determinant of a mat3 matrix. </p>
  118. <dl class="tparams"><dt>Template Parameters</dt><dd>
  119. <table class="tparams">
  120. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  121. </table>
  122. </dd>
  123. </dl>
  124. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
  125. <dd>
  126. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  127. </div>
  128. </div>
  129. <a class="anchor" id="ga1daa306eecf6e8b379626d761b8c222f"></a>
  130. <div class="memitem">
  131. <div class="memproto">
  132. <table class="memname">
  133. <tr>
  134. <td class="memname">detail::tmat4x4&lt;valType&gt;::value_type glm::determinant </td>
  135. <td>(</td>
  136. <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
  137. <td class="paramname"><em>m</em></td><td>)</td>
  138. <td></td>
  139. </tr>
  140. </table>
  141. </div><div class="memdoc">
  142. <p>Return the determinant of a mat4 matrix. </p>
  143. <dl class="tparams"><dt>Template Parameters</dt><dd>
  144. <table class="tparams">
  145. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  146. </table>
  147. </dd>
  148. </dl>
  149. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a> </dd>
  150. <dd>
  151. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  152. </div>
  153. </div>
  154. <a class="anchor" id="gada3384a86cf38a1fd96275194b8ba8c0"></a>
  155. <div class="memitem">
  156. <div class="memproto">
  157. <table class="memname">
  158. <tr>
  159. <td class="memname">detail::tmat2x2&lt;valType&gt; glm::inverse </td>
  160. <td>(</td>
  161. <td class="paramtype">detail::tmat2x2&lt; valType &gt; const &amp;&#160;</td>
  162. <td class="paramname"><em>m</em></td><td>)</td>
  163. <td></td>
  164. </tr>
  165. </table>
  166. </div><div class="memdoc">
  167. <p>Return the inverse of a mat2 matrix. </p>
  168. <dl class="tparams"><dt>Template Parameters</dt><dd>
  169. <table class="tparams">
  170. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  171. </table>
  172. </dd>
  173. </dl>
  174. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
  175. <dd>
  176. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  177. </div>
  178. </div>
  179. <a class="anchor" id="ga1a455651f7ba323ade0cd9191542b179"></a>
  180. <div class="memitem">
  181. <div class="memproto">
  182. <table class="memname">
  183. <tr>
  184. <td class="memname">detail::tmat3x3&lt;valType&gt; glm::inverse </td>
  185. <td>(</td>
  186. <td class="paramtype">detail::tmat3x3&lt; valType &gt; const &amp;&#160;</td>
  187. <td class="paramname"><em>m</em></td><td>)</td>
  188. <td></td>
  189. </tr>
  190. </table>
  191. </div><div class="memdoc">
  192. <p>Return the inverse of a mat3 matrix. </p>
  193. <dl class="tparams"><dt>Template Parameters</dt><dd>
  194. <table class="tparams">
  195. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  196. </table>
  197. </dd>
  198. </dl>
  199. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
  200. <dd>
  201. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  202. </div>
  203. </div>
  204. <a class="anchor" id="gabc94b29dea14e111e48bc963c47559b2"></a>
  205. <div class="memitem">
  206. <div class="memproto">
  207. <table class="memname">
  208. <tr>
  209. <td class="memname">detail::tmat4x4&lt;valType&gt; glm::inverse </td>
  210. <td>(</td>
  211. <td class="paramtype">detail::tmat4x4&lt; valType &gt; const &amp;&#160;</td>
  212. <td class="paramname"><em>m</em></td><td>)</td>
  213. <td></td>
  214. </tr>
  215. </table>
  216. </div><div class="memdoc">
  217. <p>Return the inverse of a mat4 matrix. </p>
  218. <dl class="tparams"><dt>Template Parameters</dt><dd>
  219. <table class="tparams">
  220. <tr><td class="paramname">valType</td><td>Floating-point scalar types.</td></tr>
  221. </table>
  222. </dd>
  223. </dl>
  224. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a> </dd>
  225. <dd>
  226. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  227. </div>
  228. </div>
  229. <a class="anchor" id="ga0e48491a51b3f366d671c01894705605"></a>
  230. <div class="memitem">
  231. <div class="memproto">
  232. <table class="memname">
  233. <tr>
  234. <td class="memname">matType glm::matrixCompMult </td>
  235. <td>(</td>
  236. <td class="paramtype">matType const &amp;&#160;</td>
  237. <td class="paramname"><em>x</em>, </td>
  238. </tr>
  239. <tr>
  240. <td class="paramkey"></td>
  241. <td></td>
  242. <td class="paramtype">matType const &amp;&#160;</td>
  243. <td class="paramname"><em>y</em>&#160;</td>
  244. </tr>
  245. <tr>
  246. <td></td>
  247. <td>)</td>
  248. <td></td><td></td>
  249. </tr>
  250. </table>
  251. </div><div class="memdoc">
  252. <p>Multiply matrix x by matrix y component-wise, i.e., result[i][j] is the scalar product of x[i][j] and y[i][j]. </p>
  253. <dl class="tparams"><dt>Template Parameters</dt><dd>
  254. <table class="tparams">
  255. <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
  256. </table>
  257. </dd>
  258. </dl>
  259. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a> </dd>
  260. <dd>
  261. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  262. </div>
  263. </div>
  264. <a class="anchor" id="ga5d896e8651512fc098a677dbe403eeac"></a>
  265. <div class="memitem">
  266. <div class="memproto">
  267. <table class="memname">
  268. <tr>
  269. <td class="memname">matType glm::outerProduct </td>
  270. <td>(</td>
  271. <td class="paramtype">vecType const &amp;&#160;</td>
  272. <td class="paramname"><em>c</em>, </td>
  273. </tr>
  274. <tr>
  275. <td class="paramkey"></td>
  276. <td></td>
  277. <td class="paramtype">vecType const &amp;&#160;</td>
  278. <td class="paramname"><em>r</em>&#160;</td>
  279. </tr>
  280. <tr>
  281. <td></td>
  282. <td>)</td>
  283. <td></td><td></td>
  284. </tr>
  285. </table>
  286. </div><div class="memdoc">
  287. <p>Treats the first parameter c as a column vector and the second parameter r as a row vector and does a linear algebraic matrix multiply c * r. </p>
  288. <dl class="tparams"><dt>Template Parameters</dt><dd>
  289. <table class="tparams">
  290. <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
  291. </table>
  292. </dd>
  293. </dl>
  294. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a> </dd>
  295. <dd>
  296. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a></dd></dl>
  297. <dl class="todo"><dt><b><a class="el" href="a00215.html#_todo000006">Todo:</a></b></dt><dd>Clarify the declaration to specify that matType doesn't have to be provided when used. </dd></dl>
  298. </div>
  299. </div>
  300. <a class="anchor" id="gac58a4106a57fb7da41b3aeae3832998b"></a>
  301. <div class="memitem">
  302. <div class="memproto">
  303. <table class="memname">
  304. <tr>
  305. <td class="memname">matType::transpose_type glm::transpose </td>
  306. <td>(</td>
  307. <td class="paramtype">matType const &amp;&#160;</td>
  308. <td class="paramname"><em>x</em></td><td>)</td>
  309. <td></td>
  310. </tr>
  311. </table>
  312. </div><div class="memdoc">
  313. <p>Returns the transposed matrix of x. </p>
  314. <dl class="tparams"><dt>Template Parameters</dt><dd>
  315. <table class="tparams">
  316. <tr><td class="paramname">matType</td><td>Floating-point matrix types.</td></tr>
  317. </table>
  318. </dd>
  319. </dl>
  320. <dl class="section see"><dt>See Also</dt><dd><a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a> </dd>
  321. <dd>
  322. <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a> </dd></dl>
  323. </div>
  324. </div>
  325. </div><!-- contents -->
  326. <!-- start footer part -->
  327. <hr class="footer"/><address class="footer"><small>
  328. Generated by &#160;<a href="http://www.doxygen.org/index.html">
  329. <img class="footer" src="doxygen.png" alt="doxygen"/>
  330. </a> 1.8.2
  331. </small></address>
  332. </body>
  333. </html>